我在多线程应用程序中有一个奇怪的错误:
public class MyClass
{
private readonly Hashtable HashPrefs;
public MyClass(int id)
{
HashPrefs = new Hashtable();
}
public void SomeMethodCalledFromAnotherThread(string hashKey,string hashValue)
{
if (HashPrefs.Contains(hashKey)) // <-- throws NullReferenceException
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
一个主题是:
SomeQueue.Add(new MyClass(1));
Run Code Online (Sandbox Code Playgroud)
而另一个线程做的是:
SomeQueue.Dequeue().SomeMethodCalledFromAnotherThread(SomeClass.SomeMethod(),"const value");
Run Code Online (Sandbox Code Playgroud)
但是第二个线程如何在构造函数完成之前调用该方法?
编辑:我添加了带有函数参数的部分,因为它似乎可能是相关的.据我所知,传递的hashKey不能为null,因为SomeMethod()总是返回一个相关的字符串.
正如其他人所指出的,如果问题是传递给Contains()的null haskKey参数,则异常将是ArgumentNullException.
iPhone有剪贴板API吗?似乎可以调用API函数将文本设置为粘贴板,其他应用程序可以访问它,但有人可以验证这是正确的吗?
谢谢.
Windows下用于检索CPU /内存/磁盘使用等统计信息的性能有哪些?WMI还是SNMP?
我有一个Moose类,其属性是一个ArrayRef(只读),并由对象内部操作.但是当有人调用访问器方法时,我希望它返回一个数组(或列表)而不是引用.这不仅会减少类的用户必须执行的解除引用量,而且还意味着它们不会意外地篡改我的对象使用的相同引用.
那么最好的方法是什么?某种强制?
我有一个可空的字符串电子邮件,我想将字符串格式化为mailto-link,如果它似乎有效.
像这样:
<a href="mailto:foo@foo.com">foo@foo.com</a>
Run Code Online (Sandbox Code Playgroud)
怎么做的?
/ M
如何从字段级别带注释的表生成hibernate域类?我使用了Hibernate Tools项目并从数据库中的表中生成了域类.生成的类在getter方法上有注释,而不是在字段级别.请建议一种方法来生成具有注释字段的域类.在eclipse/IDEA等中是否有任何重构工具可以将注释从方法级别移动到字段级别?
感谢您的帮助和时间.
我正在编写一个脚本来检查用户目录中文件的权限,如果它们不被接受,我会警告它们,但我想检查不仅是登录用户的权限,还要检查组和其他人的权限.我怎样才能做到这一点?在我看来,os.access()在Python中只能检查运行脚本的用户的权限.
我有一个(常见的)情况,我当前正在返回一个混合类型的结果,有时是布尔值,有时是错误消息.例如:
function checked_thing_is_legal(){
// Do stuff and check for errors in here.
} // Returns true if there are no errors, otherwise returns an error message string.
Run Code Online (Sandbox Code Playgroud)
这感觉很脏,有人曾经说过"将代码提炼成单一,可靠的返回值是很好的",我认为这是一个很好的建议.那么检查错误的更好范例是什么?
我有字符串: "foo$bar@baz"
我正在寻找一个C程序,它将额外的所有三个子字符串("foo","bar"和"baz")并将每个子字符串放入它自己的字符串中.
PS别担心,这不是功课.