C# 如何';宣布';多线程使用的变量?

C# 如何';宣布';多线程使用的变量?,c#,.net,multithreading,C#,.net,Multithreading,在前几天的一次采访中,我被问及如何“声明”变量以便跨线程使用它们。谢天谢地,面试进行得很顺利,我得到了这份工作,但我仍然在这个问题上左右为难。。。甚至想知道面试官是否没有问出他真正想问的问题 我认为他可能一直在思考ThreadStatic属性的作用,或者可能在思考如何跨应用程序域处理变量。他提到有两种方法,但大多数人只熟悉其中一种 我提到了volatile关键字(不可否认,我个人从未找到合法的用法),我也提到了使用锁,但他表现得好像你还应该做些别的事情来声明一个变量,以便在多个线程中使用 有人知

在前几天的一次采访中,我被问及如何“声明”变量以便跨线程使用它们。谢天谢地,面试进行得很顺利,我得到了这份工作,但我仍然在这个问题上左右为难。。。甚至想知道面试官是否没有问出他真正想问的问题

我认为他可能一直在思考ThreadStatic属性的作用,或者可能在思考如何跨应用程序域处理变量。他提到有两种方法,但大多数人只熟悉其中一种

我提到了volatile关键字(不可否认,我个人从未找到合法的用法),我也提到了使用锁,但他表现得好像你还应该做些别的事情来声明一个变量,以便在多个线程中使用


有人知道他在说什么吗?

这个问题表明他不知道自己在说什么。如果要跨线程使用变量,则无需执行任何操作

但也许他想到的是监视器类或读/写锁


或者他正在考虑如何将变量传递给线程(参数化的threadstart委托),但由于匿名方法和lambda表达式,这不再是一个问题。

如果你得到了这份工作,问他真正的意思会不会更容易,因为你被他弄糊涂了?:)@Allan Yep,我计划在我开始第一天的时候。但是我很不耐烦,现在就想知道,而且如果可能的话,我宁愿在见到他之前先弄清楚我是否遗漏了什么,或者他是否错了!:)除了反复无常之外,我想不出别的办法了。他可能会像没有这样的答案一样期待答案吗thing@SriramSakthivel我想了想。。。这肯定是一个很好的问题!他说有两种方法,所以我不认为他是想骗我。也许他只是在和你鬼混。。