gpt4 book ai didi

c# - 在 ASP.NET Web 应用程序中创建线程的正确方法

转载 作者:IT王子 更新时间:2023-10-29 04:27:12 25 4
gpt4 key购买 nike

我正在创建 asmx 网络服务,必须创建线程来执行后台 IO 以刷新系统数据。什么是正确的方法?我对创建线程的任何结果不感兴趣。我只想让 ASP.NET 工作线程创建一个线程来加载它,最后进行一个分配(我认为 assign _alldata = newData 是原子的,其中我自己的大结构类 SystemData 的两个实例)所以创建的工作线程新线程可以立即传播。

我读了一篇文章 http://msdn.microsoft.com/fi-fi/magazine/cc164128%28en-us%29.aspx#S2建议使用非线程池线程。然而,这篇文章是关于不同/更复杂的场景的,对我帮助不大。

谢谢:马蒂

附言。我也在 what is the right way to spawn thread for database IO in asmx web service? 中问过这个问题但这太复杂了,有多个问题。

最佳答案

像这样:

public delegate void Worker();
private static Thread worker;

public static void Init(Worker work)
{
worker = new Thread(new ThreadStart(work));
worker.Start();
}

public static void Work()
{
// do stuff
}

然后通过调用 Init(Work) 开始工作。

如果调用 BeginInvoke()ThreadPool.QueueUserWorkItem(),它会使用 ASP.NET 线程池线程,这会影响应用程序的可扩展性。

如果它有用,我会在我的书中详细介绍这些问题,以及代码示例、示例基准等:Ultra-Fast ASP.NET .

关于c# - 在 ASP.NET Web 应用程序中创建线程的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1824933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com