草庐IT

完成率

全部标签

c# - 为什么我必须使用等待异步运行的方法。如果我不想在继续之前等待方法完成怎么办?

这个问题在这里已经有了答案:Fire-and-forgetwithasyncvs"oldasyncdelegate"(5个答案)关闭7年前。我整天都在翻阅MSDN文档,他们的异步编码理念让我感到困惑。据我了解,如果调用异步方法,调用异步方法的线程不会被阻塞。然而,async在示例中总是与await配对,这似乎否定了异步性,使得外部方法无论如何都必须等待代码执行。我不应该能够调用异步方法然后继续执行外部方法吗?我或多或少遇到过这种情况:voidreportSomethingHappened(info)-Collectinfo-HTTPPOSTinfotologgingserver(ie.

c# - 如何在 winforms 桌面应用程序中制作自动完成文本框

我有一个单词列表。该列表包含大约100-200个文本字符串(实际上是地铁站的名称)。我想制作一个自动完成的文本框。例如,用户按“N”字母,然后出现一个(结束)适当的选项(只有一个选项)。必须选择结尾。怎么做?PS1:我想,有一个文本框控件具有如下属性:ListAppropriateOptions{/*...*/}PS2:对不起我的英语。如果您不明白->问我,我会尽力解释! 最佳答案 以防@leniel的链接失效,这里有一些代码可以解决这个问题:AutoCompleteStringCollectionallowedTypes=newA

c# - 用 foreach 遍历 Dictionary,这是按什么顺序完成的?

假设我有一个字典,我按特定顺序添加每个键和值条目。现在,如果我希望稍后能够以添加条目的相同顺序迭代此Dictionary,这是我在该字典上使用简单的foreach循环获得的顺序吗?如果没有,我会很高兴听到我该怎么做,我知道这可以用List而不是Dictionary轻松完成,但我不想到。谢谢 最佳答案 普通的Dictionary不保证项目的顺序。你需要OrderedDictionary如果您想维护添加到其中的订单项目。请注意,在.Net框架中没有此类的通用版本,因此要么必须放弃一些类型安全性,要么找到其他实现(即https://www

c# - 让多个线程工作并等待所有线程完成的最佳方法是什么?

我正在编写一个简单的应用程序(同样适用于我的妻子:-P),它可以对可能存在的大量图像进行一些图像处理(调整大小、时间戳等)。所以我正在编写一个可以同步和异步执行此操作的库。我决定使用Event-basedAsynchronousPattern.使用此模式时,您需要在工作完成时引发一个事件。这是我不知道什么时候完成的地方。所以基本上,在我的DownsizeAsync方法(缩小图像尺寸的异步方法)中,我正在做这样的事情:publicvoidDownsizeAsync(string[]files,stringdestination){foreach(varnameinfiles){strin

c# - FilePathResult 的已完成事件

我想在用户完成下载后做一些事情publicclassTestController:Controller{publicFilePathResultIndex(){returnFile("path/to/file","mime");}}我尝试的是将以下事件添加到测试Controller,但它们都在用户完成下载之前触发(除了永远不会调用的析构函数)protectedoverridevoidEndExecute(IAsyncResultasyncResult){base.EndExecute(asyncResult);}protectedoverridevoidEndExecuteCore(I

c# - 使用完成事件时如何避免意大利面条代码?

不知怎的,我不敢相信我是第一个遇到这个问题的人(我不想相信我是唯一一个愚蠢到不能直接看到解决方案的人),但我的搜索功能不是足够强大。我经常遇到这样一种情况,需要一个接一个地执行一些耗时的步骤。工作流程看起来像vardata=DataGetter.GetData();varprocessedData=DataProcessor.Process(data);varuserDecision=DialogService.AskUserAbout(processedData);//...我不想在每一步都阻塞UI,所以每个方法都会立即返回,并在完成后引发一个事件。现在欢闹接踵而至,因为上面的代码块

c# - Asp.Net Core API 禁用启动完成消息

作为我的应用程序的一部分,我有一个.NetCoreAPI项目。与该项目作为其自己的进程运行的大多数情况不同,我让API在线程中运行,除其他外,在单个进程中运行。同样对于我的项目,我已经实现了一个自定义日志系统来满足我的需要。但是,我遇到了一个小问题。每次我运行我的程序时,一旦API启动,这条消息就会打印到控制台:Hostingenvironment:ProductionContentrootpath:C:\Users\Path\To\CodeNowlisteningon:http://*:8000Applicationstarted.PressCtrl+Ctoshutdown.我想禁用

c# - Windows 服务 OnStop 等待完成处理

我实际上在VS2012/.NET4.5中开发了一个Windows服务。该服务遵循以下代码片段的方案:使用计时器每隔几分钟执行一些所需的操作。该过程大约需要10分钟才能完成我在服务中使用单线程我担心的是,如果有人通过管理控制台停止服务,它可能只是在服务正在执行的过程中。我已经阅读了一些关于通过请求停止停止Windows服务的文章,但我有点迷茫。有时会创建WorkerThreads,有时会创建ManualResetEvents,但到目前为止,我无法完全掌握Windows服务的最佳前进方向。在停止Windows服务之前,我需要等到onStop方法中的处理正确完成。那么最好的方法是什么,同时考

c# - 子字符串上的 ComboBox 自动完成

在我的一个WinForms应用程序中,我有一个带有组合框的窗口,供用户从中选择客户。此列表框中的客户采用以下格式:“CustomerID-CustomerName”,例如“004540-NorthWindTraders”nativeWinForms组合框具有内置的自动完成功能并且运行良好:问题是它只能通过从组合框列表的每个项目的字符串开头进行匹配而不是从任何地方(子字符串)开始进行匹配。我希望我的用户能够做的是键入CustomerID或CustomerName,因为高级用户熟悉大多数CustomerID,而新员工将受益于能够键入CustomerName并获得自动完成功能.这意味着我实际

c# - Task.Delay 永远不会完成

以下代码将永远卡住。publicasyncTaskDoSomethingAsync(){awaitTask.Delay(2000);}privatevoidButton_Click(objectsender,RoutedEventArgse){DoSomethingAsync().Wait();//Task.Delay(2000).Wait();}如果我将调用切换到带有注释掉的代码的DoSomethingAsync,它会按预期运行。我怀疑嵌套等待以某种方式导致了死锁,但我不确定原因或如何修复它。 最佳答案 假设Button_Clic