我之前已经问过类似的问题,但这个问题有点不同.我有一个未命名的对象数组,其中包含一个命名对象数组,我需要获取"name"为"string 1"的对象.这是一个示例数组.
var array = [
{ name:"string 1", value:"this", other: "that" },
{ name:"string 2", value:"this", other: "that" }
];
Run Code Online (Sandbox Code Playgroud)
更新:我应该早些说过,但是一旦找到它,我想用一个编辑过的对象替换它.
Visual Studio中的用户控件和Windows窗体有什么区别 - C#?
在提出这个问题之后,我想知道是否可以等待事件被触发,然后获取事件数据并返回其中的一部分.有点像:
private event MyEventHandler event;
public string ReadLine(){ return event.waitForValue().Message; }
...
event("My String");
...elsewhere...
var resp = ReadLine();
Run Code Online (Sandbox Code Playgroud)
请确保您提供的任何解决方案都直接返回值,而不是从其他地方获取.我问的是上面的方法是否以某种方式可用.我知道Auto/ManuelResetEvent,但我不知道他们像我上面那样直接返回值.
更新:我使用MyEventHandler(包含一个Message字段)声明了一个事件.我在另一个线程中有一个方法,叫做ReadLine等待事件触发.当事件触发WaitForValue方法(事件处理场景的一部分)时,返回包含消息的事件args.然后,ReadLine将消息返回给任何调用它的消息.
接受答案给这个问题我问的是我做什么,但它只是感觉并不完全正确.几乎感觉ManuelResetEvent触发和检索数据并返回它的程序之间的数据可能会发生.
更新:主要问题Auto/ManualResetEvent是它太脆弱了.线程可以等待事件,然后在将其更改为其他内容之前,没有足够的时间让其他人获取它.有没有办法使用锁或其他东西?也许使用get和set语句.
我希望在我的应用程序中有一张图片,我可以旋转以指示方向,如风向.甚至是时间.我用什么代码来旋转图片?谢谢
更新:我使用的是.NET 2.0,Windows 2000,VS C#2005
在C#中,如何指定OR:
if(this OR that) {do the other thing}
Run Code Online (Sandbox Code Playgroud)
我在帮助中找不到它.
更新:
我的代码是:
if (title == "User greeting" || "User name") {do stuff}
Run Code Online (Sandbox Code Playgroud)
我的错误是:
错误1运算符'||' 不能应用于'bool'和'string'类型的操作数C:\ Documents and Settings\Sky View Barns\My Documents\Visual Studio 2005\Projects\FOL Ministry\FOL Ministry\Downloader.cs 63 21 FOL Ministry
我有这个正则表达式,我正在使用Parallel.ForEach<string>.安全吗?
Regex reg = new Regex(SomeRegexStringWith2Groups);
Parallel.ForEach<string>(MyStrings.ToArray(), (str) =>
{
foreach (Match match in reg.Matches(str)) //is this safe?
lock (dict) if (!dict.ContainsKey(match.Groups[1].Value))
dict.Add(match.Groups[1].Value, match.Groups[2].Value);
});
Run Code Online (Sandbox Code Playgroud) 我有一个HTTP服务器,我正在使用HTTP侦听器编写,我想以某种方式声明某些变量可以从一个线程内的任何地方访问.
我想过使用字典:Dictionary</*[type of Thread ID here]*/,ThreadData>但是我担心可能存在线程问题.ThreadData将可能是一个类的实例,但我可能会使用一个结构,取决于哪个会更有效.
使用并发字典会有优势吗?还有另一种更安全的线程方式吗?
我目前正在使用ThreadPool.QueueUserWorkItem.我不确定这会为每个项目使用一个新线程.如果没有,那么我也可以将它键入上下文.
更新:根据ThreadPool类 - MSDN,它确实重用了线程.它并没有清除线程数据.
当线程池重用线程时,它不会清除线程本地存储中或使用ThreadStaticAttribute属性标记的字段中的数据.因此,当方法检查线程本地存储或使用ThreadStaticAttribute属性标记的字段时,它找到的值可能会从先前使用的线程池线程中遗留下来.
有人可以解释一个类和一个模块之间的区别.你什么时候使用一个?我正在使用C#.
更新:我的意思是VB模块的C#等价物.
我正在使用网络应用程序,我想知道是否有办法在使用HTML的应用程序类型窗口中打开链接?像这样的东西:
<a href="link" target="_app">My App</a>
Run Code Online (Sandbox Code Playgroud)