2010-03-11 101 views
3

我的應用程序中設置了雙向通信(PipeDirection.InOut)的NamedPipeClientStream實例。我也有兩個線程,一個讀線程和一個寫線程。併發讀寫NamePipeClientStream

我想讀取線程只調用NamedPipeClientStream.Read方法,寫入線程只調用NamedPipeClientStream.Write方法。他們永遠不會調用其他方法,但他們可能會同時調用管道實例。

我查閱了NamedPipeClientStream的文檔,它說公共靜態方法是線程安全的,但實例方法不保證是線程安全的。

我的問題是安全的,我有兩個線程同時調用管道實例上的兩個不同的方法(讀和寫),或者這是我不應該做的事情?而且,實例方法線程安全性是否僅適用於調用相同方法的單獨線程,而不是單獨調用像Read和Write等單獨方法的線程?

謝謝!

回答

4

是的,沒問題。 PipeStream.Read和Write直接調用本地Windows API,ReadFile和WriteFile都是線程安全的。

+0

非常好,這是我需要知道的。謝謝! – Chris 2010-03-12 06:15:20