小编gho*_*ord的帖子

如何编写简单的异步方法?

使用最新的CTP5和async/await关键字,我写了一些代码,显然无法编译:

 class Program
    {
        public class MyClass
        {
            async public Task<int> Test()
            {
                var result = await TaskEx.Run(() =>
                    {
                        Thread.Sleep(3000);
                        return 3;
                    });
                return result;
            }
        }

        static void Main(string[] args)
        {
            var myClass = new MyClass();

            //The 'await' operator can only be used in a method or lambda marked with the 'async' modifier error ??!!
            int result = await myClass.Test();

            Console.ReadLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

"'await'运算符的原因是什么只能用于标有'async'修饰符错误的方法或lambda?" (我选择了Visual Studio指向的行)

c# async-ctp

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

将std :: vector传递给构造函数并移动语义

在周末,我正在尝试刷新我的c ++技能并学习一些c ++ 11,我偶然发现了以下问题:我无法强制我的容器类正确使用移动构造函数:

我有一个构建器类,其定义如下:

class builder
{
   ...
   container build() const
   {
     std::vector<items> items;

     //... fill up the vector

     return container(items); //should move the vector right? wrong!
     //return container(std::move(items)); also doesn't work
   }
}
Run Code Online (Sandbox Code Playgroud)

类item和容器,定义如下:

class container
{
public:

    container(std:vector<item> items)
      : items_(items) // always invokes copy constructor on vector, never move
    { }

    container(container&& rhs)
    {
       ...
    }

    ...

private:
    std::vector<item> items_;

}

class item
{
public:
    //move .ctor
    item(item && rhs);
    item& operator=(item && rhs);

    //copy .ctor …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

如何从WinHttp请求获取HTTP状态代码?

msdn上的此页面包含可能在WinHTTP中使用的HTTP状态代码的定义.有没有办法从WinHttp中的请求中检索HTTP状态代码?

我发现获取响应文本的唯一方法是调用WinHttpQueryHeaders,它返回HTTP响应,如下所示:

HTTP/1.1 404 Not Found
Date: Wed, 28 May 2014 08:20:29 GMT
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0
Run Code Online (Sandbox Code Playgroud)

我是否必须自己解析此字符串以获取状态代码,或者WinHttp已经提供了某种方法来执行此操作?

winhttp

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

如何在新的TeamFoundation 2013模板中获取Workspace对象

在新版本的TeamFoundation 2013默认构建模板中,Workspace缺少该变量.它需要作为几个关键活动的输入参数ConvertWorkspaceItem.如何获取TfvcTemplate.12.xaml模板的当前工作空间?我试过使用这个msdn线程,但它不适用于我(返回null工作空间名称).有什么建议?

c# tfs tfsbuild tfs2013

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

Matrix4x4 相机方法的惯用性

.NET 框架 4.6 在System.Numerics命名空间中引入了新类,包括Matrix4x4. 它还为 3D 计算机图形引入了新的静态辅助方法,例如CreateLookAtCreatePerspectiveFieldOfView

由于 DirectX 和 OpenGL 的“惯用性”不同(DirectX 使用左手坐标,而 OpenGL 使用右手坐标),通常这些 API 在两个版本中都可用,并用RHLH进行注释以防止混淆。情况并非如此System.Numerics,我们每个方法只有一个版本。

我的问题是,新System.Numerics方法的惯用手是什么?

c# .net-4.6

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

C#中_wtof_l的PInvoke比从C++本地调用它更快

我在C#中编写了一些高性能代码,我想将我的实现与本机C++进行比较,因为我正在大量使用msvcrt函数.令我惊讶的是,C#版本的代码似乎比它的原生版本(!)更快.有人可以解释这种行为吗?

C#版本:

using System.Diagnostics;
using System.Security;
using System.Runtime.InteropServices;

class Program
{
    [DllImport("msvcrt.dll", EntryPoint = "_wtof_l", CallingConvention = CallingConvention.Cdecl)]
    [SuppressUnmanagedCodeSecurity]
    private extern unsafe static double _wtof_l(char* str, IntPtr locale);

    [DllImport("msvcrt.dll", EntryPoint = "_create_locale", CallingConvention = CallingConvention.Cdecl)]
    private extern static IntPtr CreateLocale(int category, string locale);
    private const int LC_NUMERIC = 4;

    static unsafe void Main(string[] args)
    {
        var locale = CreateLocale(LC_NUMERIC, "C");
        fixed (char* test = "1.2")
        {
            int x = 10;
            while (x-- > 0)
            {
                var sw = Stopwatch.StartNew();

                double …
Run Code Online (Sandbox Code Playgroud)

c# c++

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

使用htpp客户端时流关闭

当使用httpclient获取响应时,我在行上得到一个错误 out.write(EntityUtils.toString(resEntity));//它是java代码中的第70行

为什么会这样?

    CloseableHttpClient httpClient = HttpClients.custom().setUserAgent("Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0").build();
    HttpResponse response = httpClient.execute(new HttpGet(searchLink.toString()));  
    HttpEntity resEntity = response.getEntity();
    System.out.println(EntityUtils.toString(resEntity));
    PrintWriter out = new PrintWriter(new File("searchResult.xml"));
    out.write(EntityUtils.toString(resEntity));
    out.flush();
    out.close();
    httpClient.close();
Run Code Online (Sandbox Code Playgroud)

错误是

2015/08/07 13:03:12,887 ERROR [stderr] (Thread-101) java.io.IOException: Stream closed
2015/08/07 13:03:12,887 ERROR [stderr] (Thread-101)     at java.util.zip.GZIPInputStream.ensureOpen(GZIPInputStream.java:61)
2015/08/07 13:03:12,887 ERROR [stderr] (Thread-101)     at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:112)
2015/08/07 13:03:12,887 ERROR [stderr] (Thread-101)     at org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:74)
2015/08/07 13:03:12,887 ERROR [stderr] (Thread-101)     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
2015/08/07 13:03:12,887 ERROR [stderr] (Thread-101)     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
2015/08/07 13:03:12,887 …
Run Code Online (Sandbox Code Playgroud)

java httpclient

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

使用Reactive Extensions重播带时间戳的事件流

我有以下类的项目集合:

public class Event
{
    public DateTimeOffset Timestamp;
    public object Data;
}
Run Code Online (Sandbox Code Playgroud)

我想创建IObservable<Event>Timestamp将来发布每个项目的位置.这是可能的,Observable.Delay还是我必须编写自己的IObservable<T>实现?

我会提到这个结构就像一个日志文件.可以有成千上万的Event项目,但每秒只能发布1-2项.

c# system.reactive

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

.Net Core应用程序中缺少NativeCallableAttribute

我在github上的coreclr存储库中找到了NativeCallableAttribute的实现。它看起来像是2年前添加的,并且您可以找到显示它与.Net Framework的非托管导出一样的单元测试。

我创建了一个新的.Net core 2.0项目NativeCallableAttributeSystem.Runtime.InteropServices名称空间中没有任何内容。是否需要添加一些nuget包才能使用此类?我试过nuget包,System.Runtime.InteropServices但仍然缺少属性。

.net c# .net-core coreclr

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