【发布时间】:2014-09-25 18:03:31
【问题描述】:
我想知道,当我们在经过的计时器内调用方法时,是否总是需要放入 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.
}
}
【问题讨论】:
-
如果一个方法根本没有可观察到的副作用,那么它可能应该被删除,因为它没有完成任何事情。 Process() 方法中隐藏着一些我们看不到的东西。
标签: c# synchronization thread-safety system.timers.timer