我有一个多线程应用程序。我只想要一个线程来执行我的函数和其他线程来传递它,而我的函数正在执行。我怎样才能做到这一点?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是的,我误解了*通过*的含义。我认为编辑处理正确。 –