C# 如何在不同线程上进行同步调用

C# 如何在不同线程上进行同步调用,c#,multithreading,C#,Multithreading,我想用一个单独的ManualResetEvent将操作排入函数队列,如 Enqueue(() => { function(); ManualResetEvent evt; }); evt.WaitOne(); 在从函数队列执行操作的线程上,执行该操作 Action action = queue.dequeue(); action(); 我想做:evt.Set()这里 我的问题是如何获得ManualResetEvent对象,因为在调试器中,我可以看到操作的目标是ManualR

我想用一个单独的
ManualResetEvent
操作
排入函数队列,如

Enqueue(() =>
{
   function();
   ManualResetEvent evt;
});
evt.WaitOne();
在从函数队列执行操作的线程上,执行该操作

Action action = queue.dequeue();
action();
我想做:
evt.Set()这里

我的问题是如何获得
ManualResetEvent
对象,因为在调试器中,我可以看到操作的目标是ManualResetEvent evt

不要将
操作排队,而是将对象实例排队(需要定义)如果具有类型为
Action
的属性和类型为
ManualResetEvent
的属性,则您可以访问这两个属性。不要将
Action
排队,而是将具有类型为
Action
的属性和类型为
ManualResetEvent
的属性的对象实例(您需要定义)排队,然后您可以访问这两个

让我们编辑您的问题,特别是在有源代码的地方。当您仅在出列后执行操作时,为什么要手动重置事件?您试图实现什么?我有一种感觉,你的潜在问题有一个解决方案,通过你问的问题,特别是在有源代码的地方,编辑你的问题。当你只在出列后执行操作时,为什么你想要ManualResetEvent?你想实现什么?我有一种感觉,你的潜在问题有一个解决方案,它确实贯穿了你提出的问题