小编sol*_*ljy的帖子

Task.Factory.StartNew与Task.Factory.FromAsync

假设我们有一个I/O绑定方法(例如进行DB调用的方法).此方法可以同步和异步运行.那是,

  1. 同步:

    IOMethod()
    
    Run Code Online (Sandbox Code Playgroud)
  2. 异步:

    BeginIOMethod()
    EndIOMethod()
    
    Run Code Online (Sandbox Code Playgroud)

然后,当我们以不同的方式执行方法时,如下所示,在资源利用方面的性能差异是什么?

  1. var task = Task.Factory.StartNew(() => { IOMethod(); });
    task.Wait();
    
    Run Code Online (Sandbox Code Playgroud)
  2. var task = Task.Factory.FromAsync(BeginIOMethod, EndIOMethod, ... );
    task.Wait();
    
    Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous task-parallel-library

42
推荐指数
1
解决办法
3万
查看次数

Lucene和SQL Server - 最佳实践

我是Lucene的新手,所以想得到你们的帮助:)

背景:目前我有存储在SQL Server中的文档,并希望使用Lucene对SQL Server中的那些文档进行全文/标记搜索.

Q1)在这种情况下,为了对文档进行关键字搜索,我应该将所有这些文档都插入到Lucene索引中吗?这是否意味着会有数据重复(一个在SQL Server中,另一个在Lucene索引中?)这可能是因为我们有大量文档(大约100GB).这是不可避免的吗?

Q2)此外,每个文档都有一组标签(最多3个).Lucene也是标签搜索的不错选择?如果是这样,怎么办?

谢谢,

sql-server lucene

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

调试时的Windows Azure缓存 - 请求超时

使用Windows Azure缓存与模拟器(即在本地,而不是云)时遇到问题.

我的系统配置是:

  • Windows 8
  • Visual Studio 2012 Update 1
  • Azure SDK和Emulator 1.8
  • Windows Azure缓存1.8.1
  • Web API
  • .NET 4.5

问题是:我们的服务器利用(角色内)Windows Azure缓存进行会话管理等.一旦服务器从客户端获得请求,它就开始与Windows Azure缓存通信以放置/获取一些对象(例如,会话对象).然后发生"超时"异常(Microsoft.ApplicationServer.Caching.DataCacheException),服务器无响应,在Visual Studio的输出日志中显示以下消息.

...
iisexpress.exe Error: 0 : ERROR: <DistributedCache.RoutingClient> 25cb6980-94c5-4e72-  adee-cd58defff7fe:SendMsgAndWait: Request TimedOut, msgId = 77

A first chance exception of type 'Microsoft.ApplicationServer.Caching.DataCacheException' occurred in Microsoft.ApplicationServer.Caching.Client.dll

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'
iisexpress.exe Error: 0 : The thread '<No Name>' (0x16d0) has exited with code 0 (0x0).

The thread '<No Name>' (0x1a00) has exited with code 0 (0x0).
The thread …
Run Code Online (Sandbox Code Playgroud)

azure azure-caching

8
推荐指数
1
解决办法
2228
查看次数

制作javascript对象的两种不同方法

我是Javascript的新手,现在正在研究它......

var person = function() {
    this.name = "name"
};

var person2 = function() {
    var obj = {};
    obj.name = "name";
    return obj;
};
Run Code Online (Sandbox Code Playgroud)

我们假设我们有两个如上所示的函数.似乎可以使用任一函数创建对象.例如)

var p = new person();
var p2 = new person2();
Run Code Online (Sandbox Code Playgroud)

我的问题是:人与人之间有什么区别?它们完全一样吗?如果不是哪一种更优选的使用方式?

谢谢

javascript

5
推荐指数
1
解决办法
121
查看次数

socket.io与SignalR

我正在开发部署在Azure上的ASP.NET MVC应用程序,并正在寻找提供异步传输机制/备用的库。

经过我自己的研究,我得出的结论是,有两个知名的候选人-Socket.io和SignalR。

我的问题很简单)它们的优缺点是什么?是否有充分的理由要使用一个?

谢谢 :)

azure socket.io signalr

4
推荐指数
2
解决办法
5066
查看次数

ASP.NET WebApi中的async/await在后台

假设我有以下异步方法,需要相当长的时间才能完成其工作:

void async Task LongWork()
{
    await LONGWORK() // ... long work 
}
Run Code Online (Sandbox Code Playgroud)

现在,在web api中,我想在后台运行该工作(即,我想在启动LongWork()之后但在完成之前返回Http请求:

我可以想到实现这个目标的三种方法:

1) public async Task<string> WebApi()
   {
       ... // do another work

       await Task.Factory.StartNew(() => LongWork());

       return "ok";
   }
2) public async Task<string> WebApi()
   {
       ... // do another work

       await Task.Factory.StartNew(async () => await LongWork());

       return "ok";
   }

3) public async Task<string> WebApi()
   {
       ... // do another work

       Task.Factory.StartNew(async () => await LongWork());

       return "ok";
   }
Run Code Online (Sandbox Code Playgroud)

Q1:方法#1和#2之间有什么区别?

Q2:在ASP.NET世界中,运行方法(在此示例中,LongWork()在后台线程中包含一些异步/等待对的正确方法是什么?特别是在#3中,没有"等待"在Task.Factory.StartNew之前(async()=> await LongWork()).没问题吗?

谢谢!

asp.net asynchronous background async-await

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

SQL Server插入性能

假设我在列上有一个带有聚簇索引的下表(例如,a)

CREATE TABLE Tmp
(
    a int,
    constraint pk_a primary key clustered (a)
)
Run Code Online (Sandbox Code Playgroud)

然后,让我们假设我有两组非常大的行要插入到表中.

  • 第1组)值依次增加(即{0,1,2,3,4,5,6,7,8,9,...,999999997,999999998,99999999})
  • 第2组)值依次递减(即{99999999,999999998,999999997,...,3,2,1,0}

你认为在第一组和第二组中插入值之间会有性能差异吗?如果是这样,为什么?

谢谢

sql-server clustered-index database-performance insert-statement database-fragmentation

1
推荐指数
1
解决办法
1881
查看次数