草庐IT

邮件安全Office365

全部标签

c# - 在不锁定集合的情况下从通用集合中获取 Count 值是安全的吗?

我有两个线程,一个生产者线程将对象放入通用列表集合中,另一个消费者线程将这些对象从同一个通用列表中拉出。我已经使用lock关键字正确同步了对集合的读取和写入,并且一切正常。我想知道是否可以在不先锁定集合的情况下访问Count属性。JaredPar引用计数属性inhisblog作为可能导致竞争条件的决策程序,如下所示:if(list.Count>0){returnlist[0];}如果列表中有一个项目,并且在访问Count属性之后但在索引器之前删除了该项目,则会发生异常。我明白了。但是使用Count属性可以确定一个完全不同的集合的初始大小吗?MSDNdocumentation说实例成员不

c# - 在属性中公开 IEnumerable 是否安全?

如果我公开一个IEnumerable作为一个类的属性,它是否有可能被类的用户改变,如果是的话,什么是防止改变的最好方法,同时保持暴露属性的类型IEnumerable? 最佳答案 这取决于您返回的内容。如果你返回(比如说)一个可变的List那么客户端确实可以将其转换回List并对其进行变异。如何保护您的数据取决于您从什么开始。ReadOnlyCollection是一个很好的包装类,假设你有一个IList开始。如果您的客户不会从实现IList的返回值中受益或ICollection,你总是可以做这样的事情:publicIEnumerabl

c# - 如何使用 Microsoft.Office.Interop.Word 创建 .docx 文档?

如何使用List中的Microsoft.Office.Interop.Word创建.docx文档?或者最好的方法是添加docx.dll?http://www.c-sharpcorner.com/UploadFile/scottlysle/using-the-docx-dll-to-programmatically-create-word-documents/更新。可能我的第一个问题有点不正确。Microsoft.Office.Interop.Word和DocX.dll有什么区别?在这两种情况下,我都需要MicrosftWord来创建和打开.docx文档吗?

c# - 为什么 DateTime.Now 需要线程安全?

我正在阅读Joe的AlbahariC#threadingtutorial:作者解释了为什么DateTime.Now需要线程安全:Wrappingaccesstoanobjectaroundacustomlockworksonlyifallconcurrentthreadsareawareof—anduse—thelock.Thismaynotbethecaseiftheobjectiswidelyscoped.Theworstcaseiswithstaticmembersinapublictype.Forinstance,imagineifthestaticpropertyontheD

c# - 发送邮件异步 : An asynchronous module or handler completed while an asynchronous operation was still pending

在使用SendMailAsync时出现以下错误:Anasynchronousmoduleorhandlercompletedwhileanasynchronousoperationwasstillpending我的代码:publicstaticasyncTaskSendEmail(MessageContentmessageContent,stringemailBody){SmtpClientsmtpClientNoSend=newSmtpClient();awaitsmtpClientNoSend.SendMailAsync(mailMessage);}来自Controller的调用:

C# 单例线程安全

我有一个类似这样的单例类publicclassSingleton{privatestaticSingletonm_instance;privateTimerm_timer;privatestaticListm_cacheObjects;privateSingleton(){m_cacheObjects=newList();m_timer=newTimer(MyTimerCallBack,null,TimeSpan.FromSeconds(60),TimeSpan.FromSeconds(60));}publicstaticSingletonInstance{get{if(m_insta

c# - 发送异步电子邮件

我正在使用ASP.NETMVC3和MVCMailer,我尝试使用SendAsync发送电子邮件,但实际上它仍然需要更长的时间。所以我尝试像下面的代码一样使用Task.Factory:vartask1=Task.Factory.StartNew(state=>{varmail=newUserMailer();varmsg=mail.Welcome("MyName","myemail@gmail.com");msg.SendAsync();});task1.Wait();问题是,MVCMailer需要HttpContext,但在这个任务中我得到了HttpContextNull。如何发送异步

c# - 停止正在运行的线程的安全方法是什么?

我有一个包含IronPython脚本执行的线程。出于某种原因,我可能需要随时停止该线程,包括脚本执行。如何做到这一点?第一个想法是Thread.Abort(),但它被认为是邪恶的... 最佳答案 Whatisasafewaytostoparunningthread?将线程放在自己的进程中。当您希望它停止时,终止进程。这是终止线程的唯一安全方法。中止线程会严重破坏进程的稳定性并丢失用户数据。如果您真的、真的需要能够杀死一个可以做任何事情的线程,那么就没有办法避免“丢失用户数据”的情况。避免调用中止的进程不稳定的唯一方法是使它们完全不同

c# - Microsoft Office 互操作性能问题

我尝试在我的C#4.0Windows应用程序中将datagridview数据导出到excel文件。我们使用了Microsoft.Office.Interop.Exceldll版本12.0.0.0。一切都很好很好。但是当我尝试导出超过1000条datagridview记录时,它花费的时间太长了时间。我怎样才能提高性能。请参阅下面的Excel帮助程序代码。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.IO;usingMicrosoft.Office.Inte

c# - 通过电子邮件地址在 ActiveDirectory 中查找用户

如何通过电子邮件地址查询ActiveDirectory用户?给定的用户可以有多个电子邮件地址,例如john.smite@acme.com和jsmith@acme.com。对于给定的电子邮件,我怎样才能取回A/D用户?我正在用C#编程。 最佳答案 您可以使用以下代码搜索您的广告:DirectoryEntryadEntry=null;privatevoidSetADInfoAndCredentials(){adEntry=newDirectoryEntry("LDAP://"+ad_textBox.Text);adEntry.Usern