Phi*_*ght 5 c# wcf multithreading memory-leaks
在处理过程中执行WCF调用时,我应该做些什么来优雅地关闭线程?
我似乎在我的服务器上出现内存泄漏,我已经跟踪它从我的工作线程进行WCF调用.我以一种简单的方式创建线程,就像这样......
var schedule = new Schedule();
var scheduleThread = new Thread(New ParameterizedThreadStart(schedule.Run));
scheduleThread.SetApartmentState(ApartmentState.STA);
scheduleThread.Priority = ThreadPriority.Lowest;
scheduleThread.Start(null);
Run Code Online (Sandbox Code Playgroud)
...以及执行我的测试代码的代码有问题...
public void Run(object param)
{
var wcf = new TestServer.TestServerClient(...);
wcf.Open();
wcf.Ping();
wcf.Close();
}
Run Code Online (Sandbox Code Playgroud)
...运行2000次后,我可以看到使用内存分析器,有以下类的2000个实例...
DispatcherOperationCallback
IntPtr
HwndSubclass
NativeMethods.WndProc
Run Code Online (Sandbox Code Playgroud)
那么,我是否应该执行一些与从线程中使用WCF相关的清理工作?调用GC.Collect()没有任何影响.