我发现"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) 当某个DIV进入页面时,是否可以触发特定的javascript事件?
比方说,我有一个非常大的页面,比如2500x2500,我有一个位于1980x1250位置的40x40 div.div不一定是手动定位的,它可能存在,因为内容将其推到那里.现在,当用户滚动到div可见的点时,是否可以运行一个函数?
例如,我有一个基本事件发布方法:
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) 我们有一个运行的Windows服务,我们还有一个控制台应用程序,我们用它来配置这个服务,我们也有一个选项来看到一些日志被记录.
这个非常丑陋的事情是这个通信是由文本文件进行的,控制台应用程序写入文本文件,服务读取它,反之亦然.
你会用什么来进行这种沟通?TCP/IP不是一个选项,因为控制台应用程序将仅用于本地运行服务.
Windows API SendMessage应该是要走的路?
谢谢!
我正在尝试从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
我试图在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种不同的域名选项:
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中没有记录任何内容,我就不会看到它是如何工作的.
有没有人可以分享一些启示?
c#question - 是否有工具来确定我应该/可以使用"using"语句来确保资源关闭?(以避免内存泄漏等)
包括以下两种情况:
a)资源未被关闭
b)语法使用try-catch-finally和identies,这可以改为使用
谢谢
我的输入包含用户发布的字符串.
我想要做的是创建一个包含单词的字典,以及它们被使用的频率.这意味着我想解析一个字符串,删除所有垃圾,并获得一个单词列表作为输出.
例如,输入是
"#@!@LOLOLOL YOU'VE BEEN \***PWN3D*** ! :') !!!1einszwei drei !"
我需要的输出是列表:
"LOLOLOL""YOU'VE""BEEN""PWN3D""einszwei""drei"我不是正常表达的英雄,而且一直在谷歌搜索,但我的谷歌功夫接缝很弱......
我如何从输入转到想要的输出?
如何在objective-c中编写自己的"扩展方法"?
http://code.google.com/p/json-framework/
这个库做它,它的工作原理如下.
NSString *myString = ...;
id myResult = [myString JSONValue];
Run Code Online (Sandbox Code Playgroud)
其中myResult返回一个NSDictionary或NSArray.
这叫什么?我该怎么写自己的?
c# ×4
.net ×2
ant ×1
attributes ×1
eventargs ×1
events ×1
firefox ×1
firefox3.6 ×1
gecko ×1
http-headers ×1
ipc ×1
java ×1
javascript ×1
jquery ×1
objective-c ×1
prefetch ×1
regex ×1
replace ×1
string ×1
windows ×1