我有一個多線程應用程序。我只想要一個線程來執行我的函數和其他線程來傳遞它,而我的函數正在執行。我怎樣才能做到這一點?C#只有一個線程執行
我的方法是這樣的:
public void setOutput(int value)
{
try
{
GPOs gpos = reader.Config.GPO;
gpos[1].PortState = GPOs.GPO_PORT_STATE.TRUE;
gpos[2].PortState = GPOs.GPO_PORT_STATE.TRUE;
Thread.Sleep(WAIT);
gpos[1].PortState = GPOs.GPO_PORT_STATE.FALSE;
gpos[2].PortState = GPOs.GPO_PORT_STATE.FALSE;
}
catch (Exception ex)
{
logger.Error("An Exception occure while setting GPO to " + value + " " + ex.Message);
}
}
其他線程不會在鎖上排隊嗎?這似乎不是OP要求的內容 –
@MatthewEvans是的,我誤解了*通過*的含義。我認爲編輯處理正確。 –