使用最新的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 ++技能并学习一些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) 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已经提供了某种方法来执行此操作?
在新版本的TeamFoundation 2013默认构建模板中,Workspace缺少该变量.它需要作为几个关键活动的输入参数ConvertWorkspaceItem.如何获取TfvcTemplate.12.xaml模板的当前工作空间?我试过使用这个msdn线程,但它不适用于我(返回null工作空间名称).有什么建议?
.NET 框架 4.6 在System.Numerics命名空间中引入了新类,包括Matrix4x4. 它还为 3D 计算机图形引入了新的静态辅助方法,例如CreateLookAt或CreatePerspectiveFieldOfView。
由于 DirectX 和 OpenGL 的“惯用性”不同(DirectX 使用左手坐标,而 OpenGL 使用右手坐标),通常这些 API 在两个版本中都可用,并用RH或LH进行注释以防止混淆。情况并非如此System.Numerics,我们每个方法只有一个版本。
我的问题是,新System.Numerics方法的惯用手是什么?
我在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) 当使用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) 我有以下类的项目集合:
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项.
我在github上的coreclr存储库中找到了NativeCallableAttribute的实现。它看起来像是2年前添加的,并且您可以找到显示它与.Net Framework的非托管导出一样的单元测试。
我创建了一个新的.Net core 2.0项目NativeCallableAttribute,System.Runtime.InteropServices名称空间中没有任何内容。是否需要添加一些nuget包才能使用此类?我试过nuget包,System.Runtime.InteropServices但仍然缺少属性。