小编Jon*_*Jon的帖子

Task.Start/Wait和Async/Await有什么区别?

我可能会遗漏一些东西但是做什么之间有什么不同:

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)

c# conceptual task-parallel-library async-await .net-4.5

204
推荐指数
5
解决办法
8万
查看次数

序列化"SubSonic.Schema .DatabaseColumn"类型的对象时检测到循环引用.

我正在尝试做一个简单的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 c# subsonic json entity-framework

166
推荐指数
7
解决办法
20万
查看次数

创建线程 - Task.Factory.StartNew vs new Thread()

我刚学习.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)

有什么区别?

谢谢

.net c# multithreading .net-4.0

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

List <T> vs BindingList <T>优点/ DisAdvantages

有人可以描述两者之间的区别对于我的项目.

目前我有一个List<MyClass>并将BindingSource设置为它,并将DataGridView设置为BindingSource.

我已经实现了IEditableObject,当调用CancelEdit时,我将我的对象恢复到它的状态Memberwise.Clone()

将我的List更改为BindingList会解决这个问题,使用BindingList有什么好处?

.net c# data-binding datagridview winforms

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

并发字典正确用法

我是否正确地认为这是正确使用并发字典

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)

我没有锁等,只是更新字典中的值,即使多个线程可能尝试做同样的事情.

.net c# concurrency multithreading .net-4.0

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

在SQL Server XML数据类型上使用LIKE语句

如果您有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)

xml sql sql-server sql-server-2005

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

如何在接口上实现静态方法?

我有一个第三方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 c# interface

76
推荐指数
9
解决办法
15万
查看次数

Node.Js + Socket.IO vs SignalR vs C#WebSocket Server

我目前有一个用.Net编写的TCP服务器应用程序,它接收并向客户端提交消息.我正在寻找构建Web应用程序,因此需要通信层.

我已经构建了一个Node.JS + Socket.IO应用程序,它连接到我的TCP服务器,然后将通信推送到Web应用程序,一切正常.

我刚刚读到有关SignalR作为将其保留在.Net堆栈中的替代方法.

不过,我也发现,我可以写一个C#的WebSocket服务器,一个基本的演示在这里

我认为这个基本服务器就是SignalR,但显然有更多的功能吗?

我想要决定的是,我只是将我当前的TCP应用程序附加到Websocket服务器上,还是单独使用SignalR或Node.js路由?出于兴趣,SignalR应用程序如何运行,是作为Windows服务,控制台应用程序还是IIS服务?

c# asp.net websocket node.js signalr

71
推荐指数
3
解决办法
6万
查看次数

使用Task.Factory.StartNew传递方法参数

我有以下代码:

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)

我似乎找不到像上面那样开始这项任务的方法.

你能帮我吗?

谢谢

.net c# .net-4.0 task-parallel-library

59
推荐指数
4
解决办法
12万
查看次数

Xcode智能感知彩色框中字母的含义,如f,T,C,M,P,C,K,#等

最近,我开始使用Xcode 4开发iOS应用程序.

在Xcode intellisense的自动完成框中,每个建议之前都有一些彩色框中的字母.我知道它们代表了我们输入的单词属性,如f,T,C,M,P,C,K,#等. 在此输入图像描述

是否有某种词汇表可以找到它们的快速含义?

f,C,T,#的含义是可以理解的(函数,类等),但还有许多其他我不知道的.我认为这些字母是所有IDE的标准,如Visual Studio,Netbeans等.如果我错了,请纠正我.

请建议.

intellisense xcode objective-c ios xcode4

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