jjzjj

c# - 如何使用 async 和 await 正确处理

我正在尝试将代码从Thread替换为Task。sleep/延迟仅代表长时间运行的事件。staticvoidMain(string[]args){ThreadDoWork();TaskDoWork();}publicstaticvoidThreadDoWork(){using(vardispose=newThreadDispose()){dispose.RunAsync();}}publicstaticasyncvoidTaskDoWork(){using(vardispose=newTaskDispose()){awaitdispose.RunAsync();}}publicclass

c# - 为什么 HttpWebResponse 上没有 Dispose 方法

HttpWebReponse实现了IDisposable接口(interface),但是为什么没有Dispose方法。它只包含Close方法。using模式是否仍可用于此类? 最佳答案 HttpWebResponseimplementsIDisposable接口(interface)显式。因此,只有当您将HttpWebResponse转换为IDisposable时,您才能调用Dispose。HttpWebResponse的Close方法在内部调用Dispose。HttpWebResponseresponse=//assignedfr

c# - 代码分析警告 CA2213 - 在 IDisposable 支持字段上调用 ​​Dispose()

想发布这个,即使我在写问题时想通了。将在下面发布答案。使用VS代码分析获取以下警告:WarningCA2213'DBConn'containsfield'DBConn.k__BackingField'thatisofIDisposabletype:'SqlConnection'.ChangetheDisposemethodon'DBConn'tocallDisposeorCloseonthisfield.但是我的代码确实在DBConn属性上调用了Dispose()。它不在后台吗?我还有其他类似的实例-我正在处理编译器不会抛出此警告的地方。这是下面的代码:usingSystem;usin

c# - 我需要在 ManualResetEvent 上调用 Close() 吗?

我一直在阅读.NET线程,并且正在编写一些使用ManualResetEvent的代码.我在互联网上找到了很多代码示例。但是,在阅读WaitHandle的文档时,我看到了以下内容:WaitHandleimplementstheDisposepattern.SeeImplementingFinalizeandDisposetoCleanUpUnmanagedResources.似乎没有一个示例在它们创建的ManualResetEvent对象上调用.Close(),即使是漂亮的RecursionandConcurrency来自pfxteam博客的文章(编辑-这有一个我错过的usingbloc

c# - 关于C#中Dispose()和析构函数的两个问题

我有一个关于如何使用Dispose()和析构函数的问题。阅读一些文章和MSDNdocumentation,这似乎是实现Dispose()和析构函数的推荐方式。但是我有两个关于这个实现的问题,你可以在下面阅读:classTesting:IDisposable{bool_disposed=false;protectedvirtualvoidDispose(booldisposing){if(!_disposed)//onlydisposeonce!{if(disposing){//Notindestructor,OKtoreferenceotherobjects}//performclea

c# - 我需要在处理完控件后删除控件吗?

.NET2//dynamictextboxaddingmyTextBox=newTextBox();this.Controls.Add(myTextBox);//...somecode,finally//dynamictextboxremovingmyTextBox.Dispose();//this.Controls.Remove(myTextBox);??isthisneeded小解释当然,如果我Dispose一个控件,我将不再看到它,但无论如何,它在父控件集合中仍将是“Nothing”吗?我还需要按照MSDN的建议,从控件中删除所有处理程序吗? 最佳答案

c# - 如何防止表单对象在关闭时被释放?

我正在使用MDIParent表单。当我关闭它的child时,child的对象就会被释放。有没有办法将子可见性设置为false而不是处置? 最佳答案 默认情况下,当您关闭表单时,它会被丢弃。您必须覆盖Closing事件以防止它发生,例如://UsethiseventhandlerfortheFormClosingevent.privatevoidMyForm_FormClosing(objectsender,FormClosingEventArgse){this.Hide();e.Cancel=true;//thiscancelsth

c# - 是否有为 using 语句实现 IDisposable 的公共(public)对象列表?

我想知道是否有某种备忘单可以让对象与using语句配合得很好...SQLConnection、MemoryStream等更进一步,如果能展示其他“拼图碎片”就更好了,比如您应该如何在using语句括号结束之前实际调用connection.Close()。有这样的东西吗?如果没有,也许我们应该做一个。 最佳答案 也许可以浏览一下我在http://www.lancemay.com/2010/01/idisposable-cheat-sheet/上的帖子.不确定这是否是您要查找的内容,但根据最初的问题,听起来可能是。

c# - 如何在 C# 中等待单个事件,超时和取消

所以我的要求是让我的函数等待第一个实例eventAction来自另一个类和另一个线程,并在我的线程上处理它,允许等待被超时或CancellationToken中断.我想创建一个我可以重用的通用函数。我设法创建了几个选项来满足(我认为)我的需要,但两者似乎都比我想象的要复杂。用法需要说明的是,此函数的示例用法如下所示,其中serialDevice在一个单独的线程上吐出事件:vareventOccurred=Helper.WaitForSingleEvent(cancellationToken,statusPacket=>OnStatusPacketReceived(statusPacke

c# - 在 C# 中处理/关闭 ExchangeService?

我正在使用ExchangeServiceWebServiceAPI(Microsoft.Exchange.WebServices.Data),但找不到任何Close或Dispose方法.是否不需要以某种方式关闭连接?我的方法是这样的:publicvoidCheckMails(){ExchangeServiceservice=newExchangeService(ExchangeVersion.Exchange2007_SP1);IMAPCredentialscreds=newIMAPCredentials();service.Credentials=newNetworkCredenti