我有:
public static Thread MainThread
{
get { return Thread.CurrentThread; }
}
在我的" main"类
我想在其他课程中做以下事情:
~Class()
{
Program.MainThread.Start(this.Dispose(false));
}
如何在某个线程中运行方法?如何在主线程中运行GC?
答案 0 :(得分:1)
如何在主线程中运行CG?
GC始终在其自己的线程中运行。
如何在某个线程中运行方法?
除非另一个线程有一个等待处理事情的API入口点,否则你不能这样做(比如UI可以调用到消息泵中)。
答案 1 :(得分:0)
您无法远程在线程中运行方法。 至于GC,它可以工作异步,它将在不同的线程中运行。
答案 2 :(得分:0)
您无法告诉垃圾收集器何时完成对象或最终确定对象的线程。
您可以通过致电GC.Collect
告诉垃圾收集者现在是收集的好时机。
当直接调用IDisposable.Dispose
时,您可以通过调用fully and properly implements IDisposable
告诉垃圾收集器GC.SuppressFinalize
不需要最终确定的对象。
再次,你无法控制,除了抑制,或在什么线程上运行对象终结器。
你的Finalizer /析构函数和protected Dispose(bool disposing)
实现必须知道这个限制并适当地处理跨线程和空检查。