我可能会遗漏一些东西但是做什么之间有什么不同:
public void MyMethod()
{
Task t = Task.Factory.StartNew(DoSomethingThatTakesTime);
t.Wait();
UpdateLabelToSayItsComplete();
}
public async void MyMethod()
{
var result = Task.Factory.StartNew(DoSomethingThatTakesTime);
await result;
UpdateLabelToSayItsComplete();
}
private void DoSomethingThatTakesTime()
{
Thread.Sleep(10000);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试做一个简单的JSON返回,但我遇到了问题,我有以下内容.
public JsonResult GetEventData()
{
var data = Event.Find(x => x.ID != 0);
return Json(data);
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个HTTP 500,例外情况如此问题的标题所示.我也试过了
var data = Event.All().ToList()
Run Code Online (Sandbox Code Playgroud)
这给了同样的问题.
这是一个错误还是我的实现?
我刚学习.Net 4中新的线程和并行库
在过去,我会像这样创建一个新线程(作为示例):
DataInThread = new Thread(new ThreadStart(ThreadProcedure));
DataInThread.IsBackground = true;
DataInThread.Start();
Run Code Online (Sandbox Code Playgroud)
现在我能做到:
Task t = Task.Factory.StartNew(() =>
{
ThreadProcedure();
});
Run Code Online (Sandbox Code Playgroud)
有什么区别?
谢谢
有人可以描述两者之间的区别对于我的项目.
目前我有一个List<MyClass>并将BindingSource设置为它,并将DataGridView设置为BindingSource.
我已经实现了IEditableObject,当调用CancelEdit时,我将我的对象恢复到它的状态Memberwise.Clone()
将我的List更改为BindingList会解决这个问题,使用BindingList有什么好处?
我是否正确地认为这是正确使用并发字典
private ConcurrentDictionary<int,long> myDic = new ConcurrentDictionary<int,long>();
//Main thread at program startup
for(int i = 0; i < 4; i++)
{
myDic.Add(i, 0);
}
//Seperate threads use this to update a value
myDic[InputID] = newLongValue;
Run Code Online (Sandbox Code Playgroud)
我没有锁等,只是更新字典中的值,即使多个线程可能尝试做同样的事情.
如果您有varchar字段,则可以轻松SELECT * FROM TABLE WHERE ColumnA LIKE '%Test%'查看该列是否包含某个字符串.
你如何为XML Type做到这一点?
我有以下内容,只返回具有"文本"节点但我需要在该节点内搜索的行
select * from WebPageContent where data.exist('/PageContent/Text') = 1
Run Code Online (Sandbox Code Playgroud) 我有一个第三方C++ DLL,我从C#调用.
这些方法是静态的.
我想抽象它来做一些单元测试,所以我创建了一个带有静态方法的接口,但现在我的程序错误:
修饰符'static'对此项无效
MyMethod cannot be accessed with an instance reference; qualify it with a type name instead
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这种抽象?
我的代码看起来像这样
private IInterfaceWithStaticMethods MyInterface;
public MyClass(IInterfaceWithStaticMethods myInterface)
{
this.MyInterface = myInterface;
}
public void MyMethod()
{
MyInterface.StaticMethod();
}
Run Code Online (Sandbox Code Playgroud) 我目前有一个用.Net编写的TCP服务器应用程序,它接收并向客户端提交消息.我正在寻找构建Web应用程序,因此需要通信层.
我已经构建了一个Node.JS + Socket.IO应用程序,它连接到我的TCP服务器,然后将通信推送到Web应用程序,一切正常.
我刚刚读到有关SignalR作为将其保留在.Net堆栈中的替代方法.
不过,我也发现,我可以写一个C#的WebSocket服务器,一个基本的演示在这里
我认为这个基本服务器就是SignalR,但显然有更多的功能吗?
我想要决定的是,我只是将我当前的TCP应用程序附加到Websocket服务器上,还是单独使用SignalR或Node.js路由?出于兴趣,SignalR应用程序如何运行,是作为Windows服务,控制台应用程序还是IIS服务?
我有以下代码:
var task = Task.Factory.StartNew(CheckFiles, cancelCheckFile.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
private void CheckFiles()
{
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我现在想修改CheckFiles以接受整数和BlockingCollection引用
private void CheckFiles(int InputID, BlockingCollection<string> BlockingDataCollection)
{
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我似乎找不到像上面那样开始这项任务的方法.
你能帮我吗?
谢谢
最近,我开始使用Xcode 4开发iOS应用程序.
在Xcode intellisense的自动完成框中,每个建议之前都有一些彩色框中的字母.我知道它们代表了我们输入的单词的属性,如f,T,C,M,P,C,K,#等.

是否有某种词汇表可以找到它们的快速含义?
f,C,T,#的含义是可以理解的(函数,类等),但还有许多其他我不知道的.我认为这些字母是所有IDE的标准,如Visual Studio,Netbeans等.如果我错了,请纠正我.
请建议.
c# ×8
.net ×6
.net-4.0 ×3
.net-4.5 ×1
asp.net ×1
async-await ×1
conceptual ×1
concurrency ×1
data-binding ×1
datagridview ×1
intellisense ×1
interface ×1
ios ×1
json ×1
node.js ×1
objective-c ×1
signalr ×1
sql ×1
sql-server ×1
subsonic ×1
websocket ×1
winforms ×1
xcode ×1
xcode4 ×1
xml ×1