在多线程环境中创建实例

jas*_*son 2 .net c# multithreading timer instance

我正在使用线程计时器,它正在创建新实例并调用如下方法,

Timer_tick()
{
   Car C;
   C=new Car();
   C.Start()      ///  this will take time to complete
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,还有另一个线程带有下一个计时器滴答并执行相同的操作.然后第二个线程从第一个Car实例中删除引用并且它将在新的Car实例上调用start方法,因为第一个对象没有完成他的start方法(仍在进行中)但它不再具有"C"变量引用.这会对第一个实例Start()方法的完整性或执行产生任何问题.它可以被GC收集吗?

Col*_*lin 5

Car实例是该Timer_tick()函数的特定调用的本地实例.其他线程的后续调用在它们自己的Car对象实例上运行.

但是,在函数退出后,它看起来并不像你正在对汽车做任何事情,除了运行启动函数之外,它最终会在没有做任何事情的情况下收集垃圾.这是你的意图吗?