Microsoft.NET基类库提供了多种创建和启动线程的方法。基本上,调用与提供相同类型服务的所有其他调用非常相似:创建一个表示执行流(或更多)的对象,为其分配一个代表要执行的执行流的委托(delegate),最后,根据委托(delegate)签名,一个对象作为参数。嗯,有两种方法(本质上):1)使用System.Threading.Thread类。Threadcurr=newThread(myfunction);/*Inaclass,myfunctionisavoidtakinganobject*/curr.Start(newObject());/*Orsomethingelset
Microsoft.NET基类库提供了多种创建和启动线程的方法。基本上,调用与提供相同类型服务的所有其他调用非常相似:创建一个表示执行流(或更多)的对象,为其分配一个代表要执行的执行流的委托(delegate),最后,根据委托(delegate)签名,一个对象作为参数。嗯,有两种方法(本质上):1)使用System.Threading.Thread类。Threadcurr=newThread(myfunction);/*Inaclass,myfunctionisavoidtakinganobject*/curr.Start(newObject());/*Orsomethingelset
如果我使用QueueUserWorkItem将作业添加到线程池...我如何在所有作业完成之前阻止我的程序继续运行?我知道我可以添加一些逻辑来阻止应用程序运行,直到所有作业都完成,但我想知道是否有类似Thread.Join()的东西,或者是否有任何方法可以检索分配给作业的每个线程。 最佳答案 您可以使用事件进行同步。像这样:privatestaticManualResetEventresetEvent=newManualResetEvent(false);publicstaticvoidMain(){ThreadPool.QueueU
我有以下抛出异常的代码:ThreadPool.QueueUserWorkItem(state=>action());当操作抛出异常时,我的程序崩溃了。处理这种情况的最佳做法是什么?相关:Exceptionson.NetThreadPoolThreads 最佳答案 你可以这样添加try/catch:ThreadPool.QueueUserWorkItem(state=>{try{action();}catch(Exceptionex){OnException(ex);}}); 关于c#-如