我想知道当我们调用timers中的方法时,总是需要输入lock关键字来实现该方法的线程安全。
我有一个不使用任何共享变量并在Elapsedevent中调用的代码。 我需要锁定它还是没问题,因为线程有自己的堆栈。
这是我的Elapsedevent代码,
void t_Elapsed(object sender, ElapsedEventArgs e)
{
Test t = new Test();
t.Process();
}
class Test
{
public void Process()
{
// do ingsome processing using only local variables.
}
}
答案 0 :(得分:1)
如果一个方法不使用共享状态,那么本质上是线程安全的。你根本不需要锁。