我想创建一个线程安全的方法,我可以从多个工作人员调用而不会阻塞工作线程。我还希望代码简洁得像 InvokeRequired->BeginInvoke 类型代码用于 UI 控件...当然,Control
在这种情况下我没有使用 a,该方法位于自定义类上。我也不一定要对每种方法都这样做。那么这是可以在自定义类/方法上轻松实现的东西吗?
须藤代码:
class foo
{
//Fields
Context MyContext;
List<T> UnsafeList = new List<T>();
//Method
public void MyMethod(int someArg, Item someOtherArg)
{
if (!MyContext)
{
MyContext.BeginInvoke(...);
return; //Calling thread returns
}
else
{
UnsafeList.Add(someOtherArg);
return; //MyContext Thread returns
}
}
//Constructor
public foo()
{
MyContext = new GetSomeThreadHandle();
}
}
我想我知道如何使用自定义 EventArgs 做到这一点,但它涉及几乎重复的代码,我正在寻找更通用/更清洁的解决方案。
编辑
这是使用 C# .Net 4.0