c# - 在多线程环境中创建实例

标签 c# .net multithreading timer instance

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

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/

相关文章:

c# - 在 64 位计算机上使用 C# 和 "BUILD x86"进行注册表访问

c# - 您是否需要处理对象并将它们设置为空?

java - Tomcat内部是如何创建线程的?

multithreading - Postgres 锁在不同的 goroutine 上表现不一致

C# 将 DataTable 绑定(bind)到现有的 DataGridView 列定义

c# - 使用 Azure 发布设置文件获取存储客户端凭据

c# - Xamarin Forms 更改主页 ios 错误

c# - 传递 C# 变量并将其用作 SQL 语句查询中的列值

.net - 寻找最佳实践。扩展第三方产品以尽可能轻松地合并新版本有哪些注意事项

c# - 使用线程池的正确方法是什么?