Tag: .net

等待任务内的asynchronous/等待

我在我的main()中创build了这个构造 var tasks = new List<Task>(); var t = Task.Factory.StartNew( async () => { Foo.Fim(); await Foo.DoBar(); }); //DoBar not completed t.Wait(); //Foo.Fim() done, Foo.DoBar should be but isn't 但是,当我.Wait t时,它不会等待DoBar()的调用完成。 我如何才能真正等待?

如何在可撤销的asynchronous/等待处置TransactionScope?

我正在尝试使用新的asynchronous/等待function与数据库asynchronous工作。 由于一些请求可能是冗长的,我希望能够取消它们。 我遇到的问题是, TransactionScope显然有一个线程亲和力,似乎取消任务时,它的Dispose()运行在一个错误的线程。 特别是,当调用.TestTx()我得到以下AggregateException在task.Wait ()上包含InvalidOperationException : "A TransactionScope must be disposed on the same thread that it was created." 代码如下: public void TestTx () { var cancellation = new CancellationTokenSource (); var task = TestTxAsync ( cancellation.Token ); cancellation.Cancel (); task.Wait (); } private async Task TestTxAsync ( CancellationToken cancellationToken ) { using ( […]

使HashSet <string>不区分大小写

我有HashSet参数的方法。 我需要做大小写不敏感包含在其中: public void DoSomething(HashSet<string> set, string item) { var x = set.Contains(item); … } 是否有任何方法使现有的HashSet不区分大小写(不要创build新的)? 我正在寻找最佳性能的解决scheme。 编辑 包含可以被多次调用。 所以IEnumerable扩展对我来说是不可接受的,因为性能比本地的HashSet Contains方法要低。 解 既然,回答我的问题是NO,这是不可能的,我创build并使用了下面的方法: public HashSet<string> EnsureCaseInsensitive(HashSet<string> set) { return set.Comparer == StringComparer.OrdinalIgnoreCase ? set : new HashSet<string>(set, StringComparer.OrdinalIgnoreCase); }

将ZPL发送到Zebra打印机的.NET代码

有没有办法将ZPL(斑马编程语言)发送到.NET打印机? 我有代码在Delphi中这样做,但它不是很漂亮,我宁愿不尝试在.NET中重新创build它,因为它是。

我如何testing负零?

最初,我认为Math.Sign将是正确的路线,但在运行testing后,似乎将-0.0和+0.0视为相同。

有没有一种内置的方式将IEnumerator转换为IEnumerable

有没有一种内置的方式将IEnumerator<T>转换为IEnumerable<T> ?

客户资料vs完整

可能重复: .NET 4客户端configuration文件和完整的框架下载之间的区别 我注意到,您可以将.NET应用程序中的目标平台更改为客户端configuration文件或完整configuration文件。 两者有什么区别? 我应该如何select哪个是我的项目正确的?

有没有办法使用.NET应用程序使用git?

我怎样才能从GitHub 拉 (也可能推 )一些文件夹? 我的意思是我需要.NET的API来在C#中访问,而不是git的GUI。

HtmlAgilityPackselectchildNodes不是预期的

我试图使用HtmlAgilityPack库来parsing页面中的一些链接,但是我没有看到我期望的方法的结果。 在下面我有一个HtmlNodeCollection的链接。 对于每一个链接,我想检查是否有一个图像节点,然后parsing它的attribures,但是linkNode的SelectNodes和SelectSingleNode方法似乎是search父文档而不是linkNode的childNodes什么给? HtmlDocument htmldoc = new HtmlDocument(); htmldoc.LoadHtml(content); HtmlNodeCollection linkNodes = htmldoc.DocumentNode.SelectNodes("//a[@href]"); foreach(HtmlNode linkNode in linkNodes) { string linkTitle = linkNode.GetAttributeValue("title", string.Empty); if (linkTitle == string.Empty) { HtmlNode imageNode = linkNode.SelectSingleNode("/img[@alt]"); } } 有没有其他方法可以得到linkNode的图像childNode的ALT属性,如果它存在?

ILMerge挂在合并

我正在使用ILMerge来结合使用C#.NET 4编写的9个.NET DLL。问题是ILMerge卡住,没有错误信息或任何东西。 该日志显示ILMerge正确合并所有程序集,然后着手编写目标程序集。 它运行一大堆引用的程序集parsing器,然后..什么也没有。 成功parsingSystem.Configuration后,日志中没有显示其他内容。 该程序继续使用CPU,但我不知道它是否在做任何事情。 其他人有类似的经历?