在线程函数上调用类方法

时间:2013-12-21 11:43:19

标签: c# thread-safety

我有一个类方法isConnected(socket soc),如果套接字连接将返回true,否则返回false。我想在具有相同线程函数的两个运行线程中调用它。 这不安全吗?

因为我知道方法本身驻留在内存中并且它沿着线程共享,所以如果一个线程调用isConnected方法并且它正在运行,则另一个线程必须在第一个线程完成该方法之前不调用它。

我将变量套接字从线程传递给isConnected方法

1 个答案:

答案 0 :(得分:1)

除非该方法使用某些共享资源,否则它是安全的,因为它将在其自己的堆栈上创建局部变量,并且不会与其他线程共享它。

但请注意,一个线程可以返回true而另一个线程可以返回false,因为可以找到一个套接字关闭而另一个可以发现它仍然打开。

因此,一次从两个线程调用它并不是一个好主意。