如何在.Net 4.0上的另一个线程上使用处理程序方法

时间:2014-04-02 09:32:03

标签: c# multithreading events .net-4.0

美好的一天!

我尝试在另一个线程上执行处理程序方法,但不知道如何。

我的代码:

OnMyEvent+=MyTestFunc;


void MyTestFunc(Object sende,SomeClass c)
{
 ... do work;
}

请告诉我如何在另一个线程上执行MyTestFunc。

1 个答案:

答案 0 :(得分:1)

fire and forget方法的最简单版本(您不需要任何返回值)是使用Thread PoolThreadPool.QueueUsersWorkItem

ThreadPool.QueueUsersWorkItem(_ => MyTestFunc(arg1, arg2));

(使用_因为状态对象将被传递,但您不需要它。)如果您想为事件处理程序执行此操作:

OnMyEvent += (x, y) => {
  ThreadPool.QueueUsersWorkItem(_ => MyTestFunc(x, y));
};