我正在使用线程计时器,它正在创建新实例并调用如下所示的方法,
Timer_tick()
{
Car C;
C=new Car();
C.Start() /// this will take time to complete
}
我的问题是,下一个计时器滴答声中还有另一个线程并执行相同的操作。
然后第二个线程从第一个 Car 实例中删除引用,它将调用新 Car 实例的 start 方法,因为第一个对象没有完成他的 start 方法(仍在进行中),但它不再具有“C”变量引用。
这会对第一个实例 Start()
方法的完整性或执行产生任何问题吗?
可以被GC收集吗?
最佳答案
Car
实例对于 Timer_tick()
函数的特定调用而言是本地的。其他线程的后续调用对它们自己的 Car
对象实例进行操作。
但是,在函数退出后,您看起来并没有对汽车进行任何操作,除了运行启动函数之外,它最终会被垃圾收集,而无需对其进行任何操作。这就是你的意图吗?
关于c# - 在多线程环境中创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13213406/