假设我有一堆方法的Web服务,并且web服务上有一个公共共享变量,如果我从客户端A收到请求并且他更改了此变量的值,那么客户端B将看到值Changed by客户A?
让我试着更好地解释自己,例如
假设我有这个变量:
Public Shared state As Boolean = False(Visual Basic)
public static bool state = false; (C#)
Run Code Online (Sandbox Code Playgroud)
然后客户A去了
state = true (VB)
state = true; (C#)
Run Code Online (Sandbox Code Playgroud)
当客户端B检查变量状态的值时,它是真还是假?
我正在尝试动态锁定线程,但无论我尝试什么,总会发生某种竞争条件,这似乎是由多个线程同时启动任务引起的,但我一直无法找到一个好的答案这。
这是一个例子:
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
public class Example
{
public static readonly Object padLock = new Object();
public readonly static ConcurrentDictionary<string, object> locks = new
ConcurrentDictionary<string, object>();
public static List<string> processes = new List<string>();
public static void Main()
{
//Add random list of processes (just testing with one for now)
for (var i = 0; i < 1; i++) {
processes.Add("random" + i.ToString());
}
while (true)
{
foreach (var process in processes )
{
var currentProc = …Run Code Online (Sandbox Code Playgroud) c# parallel-processing multithreading thread-safety threadpool