美好的一天!
我尝试在另一个线程上执行处理程序方法,但不知道如何。
我的代码:
OnMyEvent+=MyTestFunc;
void MyTestFunc(Object sende,SomeClass c)
{
... do work;
}
请告诉我如何在另一个线程上执行MyTestFunc。
答案 0 :(得分:1)
fire and forget方法的最简单版本(您不需要任何返回值)是使用Thread Pool:ThreadPool.QueueUsersWorkItem
:
ThreadPool.QueueUsersWorkItem(_ => MyTestFunc(arg1, arg2));
(使用_
因为状态对象将被传递,但您不需要它。)如果您想为事件处理程序执行此操作:
OnMyEvent += (x, y) => {
ThreadPool.QueueUsersWorkItem(_ => MyTestFunc(x, y));
};