kon*_*ski 10 c# multithreading
当我说原子时,我意味着一组指令将在没有任何上下文切换到同一进程的另一个线程的情况下执行(当然必须完成其他类型的交换).我想出的唯一解决方案是暂停所有线程,除了当前在部分之前执行的线程,然后在它之后恢复它们.还有更优雅的方式吗?
我想这样做的原因是收集在多个线程上运行的对象的连贯状态.但是,他们的代码无法更改(它们已经编译),因此我无法在其中插入互斥锁,信号量等.原子操作当然是状态收集(即复制一些变量).
Mar*_*ers 6
Interlocked类中有一些原子操作,但它只提供了一些非常简单的操作.它不能用于创建整个原子代码块.
我建议仔细使用锁定,以确保即使上下文发生变化,您的代码仍然可以正常工作.
归档时间:
15 年 前
查看次数:
11317 次
最近记录:
12 年,11 月 前