C# 围绕一个非';t线程安全?
我们的票证系统供应商提供了一个.NETAPI库,我一直在尝试从多线程应用程序中使用它。我遇到了各种各样的连接/状态问题,我相信这可能是因为它不是“线程安全的”(我仍然是C#和线程应用程序的新手,所以我现在只是猜测一些症状) API没有实例化的类,您只需从其命名空间调用静态方法C# 围绕一个非';t线程安全?,c#,.net,api,thread-safety,C#,.net,Api,Thread Safety,我们的票证系统供应商提供了一个.NETAPI库,我一直在尝试从多线程应用程序中使用它。我遇到了各种各样的连接/状态问题,我相信这可能是因为它不是“线程安全的”(我仍然是C#和线程应用程序的新手,所以我现在只是猜测一些症状) API没有实例化的类,您只需从其命名空间调用静态方法TrebuchetApi.API.Connect()和TrebuchetApi.API.Login()(实际上所有方法都是静态的) 因此,我可能让一个线程做一件事,另一个线程做另一件事,而底层API正在变得混乱(应该设置的静
TrebuchetApi.API.Connect()
和TrebuchetApi.API.Login()
(实际上所有方法都是静态的)
因此,我可能让一个线程做一件事,另一个线程做另一件事,而底层API正在变得混乱(应该设置的静态变量为null等等)
有没有办法让我的每个线程都使用一个全新的API“实例”,或者这是不可避免的
更新:
为了清楚起见,在提出了使用AppDomains的建议之后,我发现这篇文章提供了我所需要的确切框架:
使用appdomains似乎是一条可行之路 参见或,了解人们提出的类似问题 msdn指南可在此处找到
请记住,AppDomain是一个.net概念,非托管资源仍然是一个问题。如果dll是.net dll,您应该能够为每个副本将程序集加载到单独的AppDomain中。看到这里,我跟随了你的链接,并进一步阅读了AppDomains,然后发现了这篇文章,这篇文章完全符合我的需要: