小编Ken*_*Ito的帖子

CancellationToken的默认参数

我有一些异步代码,我想添加一个CancellationToken.但是,有许多实现不需要这样做,所以我想有一个默认参数 - 也许是CancellationToken.None.然而,

Task<x> DoStuff(...., CancellationToken ct = null)
Run Code Online (Sandbox Code Playgroud)

产量

类型''的值不能用作默认参数,因为没有标准转换来键入'System.Threading.CancellationToken'

Task<x> DoStuff(...., CancellationToken ct = CancellationToken.None)
Run Code Online (Sandbox Code Playgroud)

'ct'的默认参数值必须是编译时常量

有没有办法让CancellationToken有一个默认值?

c# asynchronous task-parallel-library cancellation-token

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

在带有Hyperv的Windows 8上使用Android x86 HAXM加速仿真器的更好方法

据我所知,在撰写本文时,使用英特尔硬件加速执行管理器和Windows 8 Hyperv的x86 Android模拟无法同时运行.

最好的答案是允许它们同时运行(可能目前不可能).

最常见的解决方法是完全卸载Hyperv功能.如果你真的需要使用Hyperv这很痛苦.可以在这里找到更好的解决方法. http://blogs.msdn.com/b/virtual_pc_guy/archive/2008/04/14/creating-a-no-hypervisor-boot-entry.aspx.这会强制您重新启动,但至少您不必经常卸载/重新安装Hyperv.

我正在寻找一种解决方案,它不需要卸载任何东西,也不需要重启.

windows android hyper-v

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

为什么这个循环故意没有优化?

https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.Helpers/Crypto.cs#L159

// Compares two byte arrays for equality. The method is specifically written so that the loop is not optimized.
[MethodImpl(MethodImplOptions.NoOptimization)]
private static bool ByteArraysEqual(byte[] a, byte[] b)
{
    if (ReferenceEquals(a, b))
    {
        return true;
    }

    if (a == null || b == null || a.Length != b.Length)
    {
        return false;
    }

    bool areSame = true;
    for (int i = 0; i < a.Length; i++)
    {
        areSame &= (a[i] == b[i]);
    }
    return areSame;
}
Run Code Online (Sandbox Code Playgroud)

.net c# optimization

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

UI线程上的任务继续,从后台线程启动时

如果在后台线程上运行以下代码,我怎么能在主线程上'ContinueWith'?

  var task = Task.Factory.StartNew(() => Whatever());
  task.ContinueWith(NeedThisMethodToBeOnUiThread), TaskScheduler.FromCurrentSynchronizationContext())
Run Code Online (Sandbox Code Playgroud)

以上操作无效,因为当前同步上下文已经是后台线程.

c# parallel-processing task-parallel-library c#-4.0

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

如何在C#PCL中实现`FSharpValue.GetUnionFields`(Profile 259)

我正在一个C#共享项目试图找到相当于的PCL(Profile 259)FSharpValue.GetUnionFields.

通过C#项目在对象浏览器中,我看到了

namespace Microsoft.FSharp.Reflection
{
    [AutoOpen]
    [CompilationMapping(SourceConstructFlags.Module)]
    public static class FSharpReflectionExtensions
    {
        public static Tuple<UnionCaseInfo, object[]> FSharpValue.GetUnionFields.Static(object value, Type unionType, [OptionalArgument] FSharpOption<bool> allowAccessToPrivateRepresentation);
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎是我正在寻找的,但我无法(或不知道如何)从C#调用它.通过F#,如果我打开命名空间,我可以调用扩展名FSharpValue.GetUnionFields. FSharpValue.GetUnionFields不能从ac#PCL编译.我对F#没有经验,所以我可能只是缺少与F#相关的一些重要知识 - C#interop?

作为参考,这是我从F#pcl看到的.

[<AutoOpen>]
module Microsoft.FSharp.Reflection.FSharpReflectionExtensions
open Microsoft.FSharp.Reflection

val GetUnionFields : value:obj * unionType:System.Type * ?allowAccessToPrivateRepresentation:bool -> UnionCaseInfo * obj []
Run Code Online (Sandbox Code Playgroud)

Repro项目:https: //github.com/kennethito/StackOverflowReferences/tree/master/FSharpValue-GetUnionFields

c# f# portable-class-library

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

Chrome for Android上的Html文件输入缺少扩展名和mime类型

在html/js中,当您在Chrome(43)for Android(5.1.1)上选择文件时,生成的文件名缺少扩展名,文件类型为空字符串.想知道是否有办法获取遗失的信息?如果没有,是否有合理的方法对文件类型进行客户端验证?

请参阅下面的示例小提琴,并注意我在Windows桌面浏览器和ios safari上获得扩展和mime类型.

http://jsfiddle.net/Lfg3xhy4/

$(function(){
    $("#fileInput").on("change", function(e){
        $("#name").html(e.target.files[0].name);
        $("#type").html(e.target.files[0].type);
    });
});
Run Code Online (Sandbox Code Playgroud)

更新 我注意到在使用android Documents浏览器时,Audio选项卡(我用来选择文件)似乎不提供文件扩展名和mime类型.如果我使用任何其他选项卡导航到文件,一切似乎都可以.

javascript validation jquery android google-chrome

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

有没有办法为F#构造函数中的函数指定命名参数?

有没有办法在构造函数中命名函数参数?

type UnnamedInCtor(foo: string -> string -> bool) = 
    member this.Foo: string -> string -> bool = foo
    member this.Bar: a:string -> b:string -> bool = foo
    member this.Fizz = foo

//Does not compile
type NamedInCtor(foo: a:string -> b:string -> bool) = 
    member this.Foo: string -> string -> bool = foo
    member this.Bar: a:string -> b:string -> bool = foo
    member this.Fizz = foo
Run Code Online (Sandbox Code Playgroud)

f#

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

如何从C#调用F#类型扩展(静态成员函数)

FSharp代码结构如下(我不控制源代码).

namespace FS

[<AbstractClass; Sealed>]
type TestType() = 
    static member IrrelevantFunction() = 
        0

[<AutoOpen>]
module Extensions = 
    type TestType with
        //How do we call this from C#
        static member NeedToCallThis() = 
            0

module Caller = 
    let CallIt() = 
        //F# can call it
        TestType.NeedToCallThis()
Run Code Online (Sandbox Code Playgroud)

C#调用代码如下

public void Caller()
{
    TestType.IrrelevantFunction();

    //We want to call this
    //TestType.NeedToCallThis();

    //Metadata:

    //namespace FS
    //{
    //    [Microsoft.FSharp.Core.AutoOpenAttribute]
    //    [Microsoft.FSharp.Core.CompilationMappingAttribute]
    //    public static class Extensions
    //    {
    //        public static int TestType.NeedToCallThis.Static();
    //    }
    //}

    //None of …
Run Code Online (Sandbox Code Playgroud)

c# f#

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