小编Roy*_*mir的帖子

Javascript call()&apply()vs bind()?

我已经知道apply并且call是类似的功能集this(函数的上下文).

不同之处在于我们发送参数的方式(手动与数组)

题:

但什么时候应该使用这种 bind()方法?

var obj = {
  x: 81,
  getX: function() {
    return this.x;
  }
};

alert(obj.getX.bind(obj)());
alert(obj.getX.call(obj));
alert(obj.getX.apply(obj));
Run Code Online (Sandbox Code Playgroud)

jsbin

javascript arrays function

751
推荐指数
17
解决办法
36万
查看次数

什么时候应该使用TaskCompletionSource <T>?

AFAIK,它所知道的是,在某些时候,它SetResultSetException方法被调用以Task<T>通过其Task属性完成暴露.

换句话说,它充当a Task<TResult>及其完成的生产者.

我在这里看到这个例子:

如果我需要一种方法来异步执行Func并有一个Task来表示该操作.

public static Task<T> RunAsync<T>(Func<T> function) 
{ 
    if (function == null) throw new ArgumentNullException(“function”); 
    var tcs = new TaskCompletionSource<T>(); 
    ThreadPool.QueueUserWorkItem(_ => 
    { 
        try 
        {  
            T result = function(); 
            tcs.SetResult(result);  
        } 
        catch(Exception exc) { tcs.SetException(exc); } 
    }); 
    return tcs.Task; 
}
Run Code Online (Sandbox Code Playgroud)

可以使用*如果我没有Task.Factory.StartNew- 但我确实Task.Factory.StartNew.

题:

可有人请举例相关的情景解释直接TaskCompletionSource 而不是一个假想中,我没有的情况 Task.Factory.StartNew

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

188
推荐指数
7
解决办法
8万
查看次数

在C#中的控制台应用程序异步?

我有这个简单的代码:

public static async Task<int> SumTwoOperationsAsync()
{
    var firstTask = GetOperationOneAsync();
    var secondTask = GetOperationTwoAsync();
    return await firstTask + await secondTask;
}


private async Task<int> GetOperationOneAsync()
{
    await Task.Delay(500); // Just to simulate an operation taking time
    return 10;
}

private async Task<int> GetOperationTwoAsync()
{
    await Task.Delay(100); // Just to simulate an operation taking time
    return 5;
}
Run Code Online (Sandbox Code Playgroud)

大.这个编译.

但是让我们说我有一个控制台应用程序,我想运行上面的代码(调用SumTwoOperationsAsync())

 static  void Main(string[] args)
        {
             SumTwoOperationsAsync();
        }
Run Code Online (Sandbox Code Playgroud)

但我读过,(使用时sync),我不得不一路同步向上向下 :

问题:这是否意味着我的Main功能应该标记为 …

c# async-await c#-5.0 .net-4.5

168
推荐指数
2
解决办法
10万
查看次数

Base64长度计算?

看完base64 维基 ...

我想弄清楚公式是如何工作的:

给定长度为的字符串n,base64长度为在此输入图像描述

这是: 4*Math.Ceiling(((double)s.Length/3)))

我已经知道base64长度必须是%4==0让解码器知道原始文本长度是多少.

序列的最大填充数可以是===.

wiki:每个输入字节的输出字节数约为4/3(开销为33%)

题:

上述信息如何与输出长度相符 在此输入图像描述

string base64 formula padding

142
推荐指数
8
解决办法
15万
查看次数

用Object.create(null)创建JS对象?

我知道很多创建JS对象的方法,但我不知道那个Object.create(null).

题:

是完全一样的:

var p = {}
Run Code Online (Sandbox Code Playgroud)

VS

var p2 = Object.create(null);
Run Code Online (Sandbox Code Playgroud)

javascript

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

检查JS对象类型的最准确方法是什么?

typeof运营商并没有真正帮助我们找到真正的类的一个对象.

我已经看过以下代码:

Object.prototype.toString.apply(t)  
Run Code Online (Sandbox Code Playgroud)

题:

它是检查对象类型的准确方法吗?

javascript

124
推荐指数
6
解决办法
16万
查看次数

AngularJs"控制器为"语法 - 澄清?

读到了关于 angularJS 的新语法controller as xxx

语法InvoiceController as invoice告诉Angular实例化控制器并将其保存在当前范围的变量发票中.

可视化:

在此输入图像描述

好的,所以$scope我的控制器中没有参数,控制器中的代码会更清晰.

我将不得不在视图中指定另一个别名

所以到现在为止我能做到:

<input type="number" ng-model="qty"  />

....controller('InvoiceController', function($scope) {
   // do something with $scope.qty <--notice
Run Code Online (Sandbox Code Playgroud)

现在我可以这样做:

 <input type="number" ng-model="invoic.qty"  /> <-- notice 

  ....controller('InvoiceController', function() {
       // do something with  this.qty  <--notice
Run Code Online (Sandbox Code Playgroud)

这样做的目标是什么?从一个地方删除并添加到另一个地方?

我很高兴看到我错过了什么.

javascript angularjs

119
推荐指数
4
解决办法
7万
查看次数

Asp.net WebApi中的自定义授权 - 真是一团糟?

我正在阅读有关WebApi授权的几个资源(书籍和SO答案).

假设我想添加自定义属性,该属性仅允许特定用户访问:

情况1

我已经看到了这种覆盖的 方法, OnAuthorization如果出现问题就会设置响应

public class AllowOnlyCertainUsers : AuthorizeAttribute
{
 public override void OnAuthorization(HttpActionContext actionContext)
  {
   if ( /*check if user OK or not*/)
   {
     actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

案例#2

但是我也看到了这个类似的例子,它也覆盖了 OnAuthorization但是要求base:

public override void OnAuthorization(HttpActionContext actionContext) 
{ 
  base.OnAuthorization(actionContext);

    // If not authorized at all, don't bother

    if (actionContext.Response == null)  
     {
      //...
     }
}
Run Code Online (Sandbox Code Playgroud)

然后,检查是否 HttpActionContext.Response已设置.如果未设置,则表示请求已获得授权且用户可以

案例#3

但我也看到了这种覆盖的方法IsAuthorized :

public class AllowOnlyCertainUsers : AuthorizeAttribute
{
 protected override …
Run Code Online (Sandbox Code Playgroud)

asp.net authorization asp.net-web-api

108
推荐指数
3
解决办法
7万
查看次数

保持活跃的标题澄清

我被要求建立一个网站,其中一位联合开发人员告诉我,我需要包含keep-alive标头.

好吧,我读了很多关于它,但我仍有疑问.

msdn - >

当客户端对网页内容发出多个请求时,打开连接可提高性能,因为服务器可以更快地返回每个请求的内容.否则,服务器必须为每个请求打开一个新连接

看着

在此输入图像描述

  • 当IIS(F)将keep alive头(或用户发送保活),岂不是(E,C,B)保存这仅仅是我的会话的连接?
  • 这些信息保存在哪里("此连接属于"Royi")?
  • 这是否意味着没有其他人可以使用该连接
  • 如果是这样 - 这是否意味着保持alive-header - 减少重叠连接用户的数量?
  • 如果是这样,连接保存多长时间?(换句话说,如果我保持活着 - "保持"直到什么时候?)

对于那些感兴趣的人:

单击此示例页面将返回keep alive标头

http keep-alive http-headers

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

IIS7设置文件位置

IIS7在哪里保存每个虚拟目录/应用程序及其物理路径的配置?

它是XML文件吗?如果是这样,编辑此XML文件是否会影响IIS配置(重启后)?

iis-7

97
推荐指数
2
解决办法
12万
查看次数