c# 在不丢失处理器的情况下进行多个语句
c# Make several statements without losing the processor
我想知道 C# 中是否有一种方法可以确保一次执行两个或多个以下语句而不会在中间丢失处理器?
可以说我需要将这两个语句作为一个语句执行。
有没有办法在 C# windows 7 中做到这一点?
{
m_oComManager.fWrite(l_bReadRequest);
s_oWaitForMsgRes.fDown();
}
锁定他们:
lock (m_oComManager)
{
m_oComManager.fWrite(l_bReadRequest);
s_oWaitForMsgRes.fDown();
}
虽然您需要在其他可能发生冲突的地方引入相同的锁。
另外你可能解错了问题;但如果没有更多上下文就无法分辨。
Windows 是抢占式 OS 并且您无法控制它何时选择给另一个线程机会。所以不——不是在 C# 中,不是在汇编程序中,甚至是在机器代码中,你可以执行 2 条语句,而这些语句没有机会在 OS.
分配的不同时间片中执行。
我仍然相信您的问题与您所问的不同,并且您不需要 2 个语句以相同的量程执行。
你说:"statements would be executed in one shot",我猜你想并发执行语句?如果是这样,您可以使用任务并行性(来自 .NET 4.0 或更高版本)。
示例:
Parallel.Invoke(() => DoSomeWork(), () => DoSomeOtherWork());
这将使 DoSomeWork 和 DoSomeOtherWork 同时 运行。
我想知道 C# 中是否有一种方法可以确保一次执行两个或多个以下语句而不会在中间丢失处理器? 可以说我需要将这两个语句作为一个语句执行。 有没有办法在 C# windows 7 中做到这一点?
{
m_oComManager.fWrite(l_bReadRequest);
s_oWaitForMsgRes.fDown();
}
锁定他们:
lock (m_oComManager)
{
m_oComManager.fWrite(l_bReadRequest);
s_oWaitForMsgRes.fDown();
}
虽然您需要在其他可能发生冲突的地方引入相同的锁。
另外你可能解错了问题;但如果没有更多上下文就无法分辨。
Windows 是抢占式 OS 并且您无法控制它何时选择给另一个线程机会。所以不——不是在 C# 中,不是在汇编程序中,甚至是在机器代码中,你可以执行 2 条语句,而这些语句没有机会在 OS.
分配的不同时间片中执行。我仍然相信您的问题与您所问的不同,并且您不需要 2 个语句以相同的量程执行。
你说:"statements would be executed in one shot",我猜你想并发执行语句?如果是这样,您可以使用任务并行性(来自 .NET 4.0 或更高版本)。
示例:
Parallel.Invoke(() => DoSomeWork(), () => DoSomeOtherWork());
这将使 DoSomeWork 和 DoSomeOtherWork 同时 运行。