我可以使用外部程序集的static method
类似[ThreadStatic]
方法吗?
这是我的情况。(assembly class
我无法访问其源代码)具有这种结构
public class RegistrationManager()
{
private RegistrationManager() {}
public static void RegisterConfiguration(int ID) {}
public static object DoWork() {}
public static void UnregisterConfiguration(int ID) {}
}
DoWork()
注册后,如果不取消注册之前注册的 ID ,我就无法使用其他 ID 拨打电话。实际上,我想DoWork()
通过多线程同时调用具有不同 ID 的方法。
如果RegisterConfiguration(int ID)
方法是[ThreadStatic]
,我可以在不同的线程中调用它而不会出现调用问题,对吧?那么,我可以将[ThreadStatic]
属性应用于此方法还是有其他方法可以同时调用这两个static
方法而无需等待其他线程取消注册它?
如果我像下面这样检查它,它应该可以工作。
for(int i=0; i < 10; i++)
{
new Thread(new ThreadStart(() => Checker(i))).Start();
}
public string Checker(int i)
{
public static void RegisterConfiguration(i); // Now i cannot register second time
public static object DoWork(i);
Thread.Sleep(5000); // DoWork() may take a little while to complete before unregistered
public static void UnregisterConfiguration(i);
}