问题列表 - 第20329页

C#是否具有"ThreadLocal"模拟(对于数据成员)到"ThreadStatic"属性?

我发现"ThreadStatic"属性最近非常有用,但现在我想要一个"ThreadLocal"类型属性,它允许我在每个线程的基础上拥有非静态数据成员.

现在我知道这会产生一些非平凡的影响,但是:

C#/ .net中是否已经内置了这样的东西? 或者因为到目前为止它的答案是否定的(对于.net <4.0),是否有一个常用的实现?

我可以想出一种合理的方式来实现它,但只会使用已经存在的东西(如果有的话).

稻草人将实现什么我要找的,如果它已经不存在例子:

class Foo
{
    [ThreadStatic] 
    static Dictionary<Object,int> threadLocalValues = new Dictionary<Object,int>();
    int defaultValue = 0;

    int ThreadLocalMember
    {
         get 
         { 
              int value = defaultValue;
              if( ! threadLocalValues.TryGetValue(this, out value) )
              {
                 threadLocalValues[this] = value;
              }
              return value; 
         }
         set { threadLocalValues[this] = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

请原谅任何C#无知.我是一名C++开发人员,最近才开始涉及C#和.net的更有趣的功能

我只限于.net 3.0和3.5(项目已经/将很快转移到3.5).

具体的用例是特定于线程的回调列表(使用虚构的[ThreadLocal]属性) a la:

class NonSingletonSharedThing
{
     [ThreadLocal] List<Callback> callbacks;

     public void ThreadLocalRegisterCallback( Callback somecallback )
     { …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading attributes

22
推荐指数
2
解决办法
1万
查看次数

当DIV在视图中时触发Javascript事件

当某个DIV进入页面时,是否可以触发特定的javascript事件?

比方说,我有一个非常大的页面,比如2500x2500,我有一个位于1980x1250位置的40x40 div.div不一定是手动定位的,它可能存在,因为内容将其推到那里.现在,当用户滚动到div可见的点时,是否可以运行一个函数?

javascript javascript-events

10
推荐指数
2
解决办法
2万
查看次数

.NET:每次事件激发良好做法时都会创建新的EventArgs吗?

例如,我有一个基本事件发布方法:

    protected virtual OnSomeEvent(EventArgs e)
    {
        var handler = SomeEvent;
        if (handler != null)
        {
            handler(this, e);
            // handler(this, new EventArgs());// EDIT: Yes it should be
                                           // handler(this, e),
                                           // ignore this one :D
        }
    }
Run Code Online (Sandbox Code Playgroud)

对于派生类,OnSomeEvent它在触发时覆盖并引发其他事件:

    protected override OnSomeEvent(EventArgs e)
    {
        base.OnSomeEvent(e);

        if (ExtendedEvent != null)
        {
            OnExtendedEvent(e);
        }
    }

    protected void OnExtendedEvent(EventArgs e)
    {
       // some stuff done
       // new information the ExtendedEventArgs object needs 
       //  is not available until this point

       ExtendedEvent(this, new ExtendedEventArgs(someStuff, someOtherStuff)); …
Run Code Online (Sandbox Code Playgroud)

c# events event-handling eventargs

8
推荐指数
2
解决办法
3084
查看次数

用于与Windows服务通信的控制台应用程序

我们有一个运行的Windows服务,我们还有一个控制台应用程序,我们用它来配置这个服务,我们也有一个选项来看到一些日志被记录.

这个非常丑陋的事情是这个通信是由文本文件进行的,控制台应用程序写入文本文件,服务读取它,反之亦然.

你会用什么来进行这种沟通?TCP/IP不是一个选项,因为控制台应用程序将仅用于本地运行服务.

Windows API SendMessage应该是要走的路?

谢谢!

windows ipc

5
推荐指数
1
解决办法
1694
查看次数

没有任何类名的NoClassDefFoundError

我正在尝试从ant运行java任务.我正在尝试运行"org.apache.tools.ant.launch.Launcher"类.我继续获取"NoClassDefFoundError"而没有指定任何类名.我也得到一个"ClassNotFoundException"以及显示消息"无法找到主类:.程序将退出".这是错误的片段

 [java] Exception in thread "main" java.lang.NoClassDefFoundError: 
 [java] Caused by: java.lang.ClassNotFoundException: 
 [java]  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 [java]  at java.security.AccessController.doPrivileged(Native Method)
 [java]  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 [java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 [java]  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
 [java] Could not find the main class: .  Program will exit.
 [java] Java Result: 1
Run Code Online (Sandbox Code Playgroud)

现在我试图从一个ant jar运行一个ant类,并使用"classpathref"属性指定此类文件所在的类路径,但是我仍然收到此消息.我检查了ant jar以检查Manifest并正确指定了"main"类(它是"org.apache.tools.ant.launch.Launcher").我已经用尽了所有的资源.请帮忙 !!!

ps:我的环境是Ubuntu 9.04上的Eclipse

java ant noclassdeffounderror

10
推荐指数
2
解决办法
2万
查看次数

链接元素预取在Firefox 3.6中不起作用

我试图在Firefox 3.6上测试预取.我正在使用:

<link rel="prefetch" href="hst_galaxy.jpg"/>
Run Code Online (Sandbox Code Playgroud)

我在Firebug的Net面板中没有看到任何请求.当我查看Apache 2日志时,我只看到了页面请求,之后没有任何内容.我也没有看到预期的X-moz: prefetch标题.我还使用Wireshark检查了数据包,并且没有发送预取头.我还使用了LiveHttpHeaders(FF扩展),并且不再发送预取头.

我查看了我的about:config选项,并启用了"network.prefetch-next".

我的测试设置在Mac OS 10.5.8上.我正在使用Apache的本地安装,并从sites目录中的测试HTML文件运行它.我尝试了3种不同的域名选项:

  • 本地主机/ cachetest
  • localhost.com/cachetest
  • www.randomurl.com/cachetest

localhost.com和randomurl.com是我在/ etc/hosts文件中配置的域.可以访问测试页面.

我访问过此页面,表示X-Moz已检测到标题.http://browserspy.dk/prefetch.php 在Firefox中,它说是的.在Chrome/Safari中它说不,这是预期的.同样,我无法检测到X-Moz使用Wireshark或LiveHttpHeaders发送的标头.在查看该页面的来源时,我确实看到了正确的<link rel="prefetch">元素.

我真的不确定我错过了什么.我已经非常彻底地测试了这个,如果我没有从Firefox中检测到任何内容并且在Apache中没有记录任何内容,我就不会看到它是如何工作的.

有没有人可以分享一些启示?

firefox gecko prefetch http-headers firefox3.6

7
推荐指数
1
解决办法
702
查看次数

c#question - 是否有工具来确定我应该/可以使用"using"语句来确保资源关闭?

c#question - 是否有工具来确定我应该/可以使用"using"语句来确保资源关闭?(以避免内存泄漏等)

包括以下两种情况:

a)资源未被关闭

b)语法使用try-catch-finally和identies,这可以改为使用

谢谢

.net c# memory-management using-statement

5
推荐指数
1
解决办法
149
查看次数

正则表达式:如何从字符串中获取单词(C#)

我的输入包含用户发布的字符串.

我想要做的是创建一个包含单词的字典,以及它们被使用的频率.这意味着我想解析一个字符串,删除所有垃圾,并获得一个单词列表作为输出.

例如,输入是 "#@!@LOLOLOL YOU'VE BEEN \***PWN3D*** ! :') !!!1einszwei drei !"

我需要的输出是列表:

  • "LOLOLOL"
  • "YOU'VE"
  • "BEEN"
  • "PWN3D"
  • "einszwei"
  • "drei"

我不是正常表达的英雄,而且一直在谷歌搜索,但我的谷歌功夫接缝很弱......

我如何从输入转到想要的输出?

c# regex string replace

13
推荐指数
2
解决办法
3万
查看次数

Objective-C中的"扩展方法"

如何在objective-c中编写自己的"扩展方法"?

http://code.google.com/p/json-framework/

这个库做它,它的工作原理如下.

NSString *myString = ...;
id myResult = [myString JSONValue];
Run Code Online (Sandbox Code Playgroud)

其中myResult返回一个NSDictionaryNSArray.

这叫什么?我该怎么写自己的?

objective-c

6
推荐指数
1
解决办法
3318
查看次数

使用jQuery获取鼠标的X/Y坐标单击图像

我想使用jQuery来获取图像上单击事件的X/Y坐标.坐标应该相对于图像,而不是相对于整个页面

jquery

97
推荐指数
4
解决办法
16万
查看次数