我能够通过从IDictionary派生并定义一个私有的SyncRoot对象,在C#中实现一个线程安全的Dictionary:
public class SafeDictionary<TKey, TValue>: IDictionary<TKey, TValue>
{
private readonly object syncRoot = new object();
private Dictionary<TKey, TValue> d = new Dictionary<TKey, TValue>();
public object SyncRoot
{
get { return syncRoot; }
}
public void Add(TKey key, TValue value)
{
lock (syncRoot)
{
d.Add(key, value);
}
}
// more IDictionary members...
}
Run Code Online (Sandbox Code Playgroud)
然后,我在整个消费者(多个线程)中锁定此SyncRoot对象:
例:
lock (m_MySharedDictionary.SyncRoot)
{
m_MySharedDictionary.Add(...);
}
Run Code Online (Sandbox Code Playgroud)
我能够使它工作,但这导致了一些丑陋的代码.我的问题是,是否有更好,更优雅的方式来实现线程安全的字典?
我有一个名为StartDate包含此格式的日期的列:03-03-2012 15:22
我需要的是将它转换为日期.应该看起来像这样:DD/MM/YYYY
我没有成功的尝试是:
select
p1.PA_VALUE as StartDate,
p2.PA_VALUE as EndDate
from WP_Work p
LEFT JOIN PARAMETER p1 on p1.WP_ID=p.WP_ID AND p1.NAME = 'StartDate'
LEFT JOIN PARAMETER p2 on p2.WP_ID=p.WP_ID AND p2.NAME = 'Date_To'
WHERE p.TYPE = 'EventManagement2'
AND TO_DATE(p1.PA_VALUE, 'DD/MM/YYYY') >= TO_DATE('25/10/2012', 'DD/MM/YYYY')
AND TO_DATE(p2.PA_VALUE, 'DD/MM/YYYY') <= TO_DATE('26/10/2012', 'DD/MM/YYYY')
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
EDIT1:PA_VALUE列是:VARCHAR2
我使用一些命令从debug.keystore文件中获取MD5私钥,但实际上我得到的是SHA1私钥而不是MD5.我不知道如何获得MD5.
这是我使用的命令.
keytool -list -alias androiddebugkey -keystore (path_to_debug_keystore).keystore -storepass android -keypass android
Run Code Online (Sandbox Code Playgroud) 字符串构造通过执行获取数据的空间
new char[strlen(cp)+1];
Run Code Online (Sandbox Code Playgroud)
由于strlen(cp)字符串中只有字符,所以多余的字节是什么?
我需要根据条件设置变量.但由于变量是不可变的,我发现自己陷入了不得不重复代码的困境.我想做的是:
def doSomething(x:Int):Int = {
if(x==1){
val player="Andy"
} else {
val player="Rob"
}
getSomeValue(player) // Another function
}
Run Code Online (Sandbox Code Playgroud)
但变量"玩家"已不在范围内.我看到的唯一方法是在两个条件块中调用函数"getSomeValue",但这不是我想做的事情.如何使用不可变变量解决这个问题?
如何在Eclipse中使用自动完成和其他功能编写ExtJS代码?我尝试使用SpketIDE,但ExtJS 4包中没有ext.jsb2文件.
有没有人这样做过?
谢谢
是否有可能使用GAE SDK列出我的Google云端存储分区上的所有文件?我知道Python SDK支持这样的功能,但我在Java SDK中找不到类似的功能.
如果不可用,是否会在Java SDK的未来版本中添加?
我想写一个像这样的查询
select top 10 * from A
order by price
union
select top 3 * from A
order by price
Run Code Online (Sandbox Code Playgroud)
或者......那样的
select top 10 * from A
where name like '%smt%'
order by price
union
select top 3 * from A
where name not like '%smt%'
order by price
Run Code Online (Sandbox Code Playgroud)
你能帮我么?
有谁知道为什么这个在C中成功编译?
int main(){
display();
return 0;
}
void display(){
printf("Why am I compiling successfully?");
}
Run Code Online (Sandbox Code Playgroud)
我认为当没有提供声明时C假设extern int Function_name(arg1,arg2,...){}.因此这应该给出一个错误但是它正在工作!我知道Ideone正在压制警告,但我的问题是为什么它不是直接错误?(但在C++中它是直接的错误)
我在我的HTML中有这个:
<table class="dataTable" id="CADataTable">
<thead>
<tr>
<th> Type</th>
<th> Name</th>
<th> Adress</th>
<th> ID Number</th>
<th> Contact</th>
<th> Note</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<select name="CAType" id="CAType" data-bind="value: CAType" style="width: 12em;">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</td>
<!-- <td><input type="text" name="CAType" data-bind="value: CAType" style="width: 9em;"></td> -->
<td><input type="text" name="CAName" data-bind="value: CAName" style="width: 15em;"></td>
<td><input type="text" name="CAAdress" data-bind="value: CAAdress" style="width: 15em;"></td>
<td><input type="text" name="CAIdNum" data-bind="value: CAIdNum" style="width: 6em;"></td>
<td><input type="text" name="CAContact" data-bind="value: CAContact" style="width: 10em;"></td>
<td><input type="text" name="CANote" data-bind="value: CANote" style="width: …Run Code Online (Sandbox Code Playgroud) sql ×2
.net ×1
android ×1
c ×1
c# ×1
c++ ×1
code-assist ×1
collections ×1
conditional ×1
eclipse ×1
extjs ×1
extjs4 ×1
immutability ×1
java ×1
jquery ×1
knockout.js ×1
oracle ×1
scala ×1
sql-server ×1
t-sql ×1