草庐IT

$安全工具

全部标签

c# - 这个操作线程安全吗?

在以下示例中,当单击“提交”按钮时,静态变量Count的值会递增。但是这个操作线程安全吗?使用Appliation对象是执行此类操作的正确方法吗?这些问题也适用于Web表单应用程序。当我点击“提交”按钮时,计数似乎总是在增加。View(Razor):@{Layout=null;}@ViewBag.BeforeCountController:publicclassHomeController:Controller{publicActionResultIndex(){ViewBag.BeforeCount=StaticVariableTester.Count;StaticVariableT

c# - 检查对象是否为 null 并在同一个 if 语句中比较对象的属性值是否安全?

请参阅线程标题。我是否可以安全地执行类似的操作而不用担心NullReferenceException,或者不能保证这些bool表达式将从左到右求值?//canthisthrowanNRE?if(obj==null||obj.property==value){//dosomething} 最佳答案 他们将从左到右进行评估,保证。所以是的,它是安全的。Theconditional-ORoperator(||)performsalogical-ORofitsbooloperands,butonlyevaluatesitssecondope

c# - 字典的线程安全

如果我有一个DictionarymyDic=newDictionary//Populatedictionary一个线程做myDic[0]=newStreamReader(path);另一个线程做myDic[1]=newStreamReader(otherpath)这个线程安全吗,因为字典中被修改的实际项目与另一个线程上的项目不同,或者我会得到一个InvalidOperationException:Collectionwasmodified 最佳答案 如果您在修改时枚举字典,您只会得到InvalidOperationException

c# - C# 中的空合并运算符 (??) 是线程安全的吗?

以下代码中是否存在可能导致NullReferenceException的竞争条件?--或--Callback变量是否可以在null合并运算符检查null值之后但在调用函数之前设置为null?classMyClass{publicActionCallback{get;set;}publicvoidDoCallback(){(Callback??newAction(()=>{}))();}}编辑这是出于好奇而提出的问题。我通常不会这样编码。我不担心Callback变量变得陈旧。我担心DoCallback会抛出Exception。编辑#2这是我的类(class):classMyClass{A

C# 工具提示显示的时间不够长

我有一个工具提示出现在鼠标悬停在图像上时:ToolTiptt=newToolTip();protectedvirtualvoidpictureBox_MouseHover(objectsender,EventArgse){tt.InitialDelay=0;tt.SetToolTip(this.pictureBox,"Click'LIVE...");}我的问题是我的文本很长,工具提示消失得太快。如何让工具提示显示更长时间? 最佳答案 设置AutoPopDelayproperty更高-默认为5000(5秒)更新:我的错误:Themax

c# - 安全异常 : Request for the permission of type 'System.Net.Mail.SmtpPermission'

这是“在本地工作,在服务器上不工作”的帖子之一。我有一个发送电子邮件的简单联系表单。在服务器上,我得到以下异常:SecurityExceptionDescription:Theapplicationattemptedtoperformanoperationnotallowedbythesecuritypolicy.Tograntthisapplicationtherequiredpermissionpleasecontactyoursystemadministratororchangetheapplication'strustlevelintheconfigurationfile.Ex

c# - IEnumerable<T> 线程安全?

我有一个填充List的主线程.此外,我创建了一个将在不同线程上执行的对象链,需要访问列表。原始列表生成后将永远不会被写入。我的想法是将列表传递为IEnumerable到在其他线程上执行的对象,主要是为了不允许那些实现这些对象的人错误地写入列表。换句话说,如果保证不写入原始列表,多线程使用.Where是否安全?或foreach在IEnumerable上?如果原始集合从未更改,我不确定迭代器本身是否是线程安全的。 最佳答案 IEnumerable无法修改。那么什么可以是非线程安全的呢?(如果您不修改实际的List)。对于非线程安全,您需

c# - 自定义工具错误 : Failed to generate file

我正在开发一个在VS2012(Framework4.5)windows窗体中创建的windows应用程序(C#)。要求要求它用于旧版本的Windows,因此我将目标框架设置为.NETFramework4并将平台目标设置为x86。一旦完成并尝试编译,我会收到以下错误:Customtoolerror:Failedtogeneratefile:Theservicereferenceisnotvalidforthecurrent.NETFrameworkversionorprojecttype.Youcanchangetheservicereferenceconfigurationinthe.

c# - 尝试在项目上启用多语言应用程序工具包时,没有任何反应

当我尝试在C#项目上启用多语言应用程序工具包时,出现如下错误,但没有其他任何反应:Project'projectname'wasnotenabled-theproject'ssourceculturecouldnotbedetermined.怎么了? 最佳答案 将这样的一行添加到您的assemblyinfo.cs文件中:[assembly:NeutralResourcesLanguage("en")]指示的语言是应用程序当前使用的语言(即通常是硬编码文本,在翻译之前) 关于c#-尝试在项

c# - 使用 .net native 工具链编译后 Uwp 应用程序立即崩溃

我正在创建一个uwp应用程序。我的应用程序在Debug模式下运行良好。但是,当使用.netnative工具链(这是将应用程序发布到商店所必需的)进行编译时,它会立即崩溃。我试图启用所有异常设置,但它没有遇到任何断点。我可以从输出中获得的所有信息是:Theprogram'[9548]DemoBuildError.exe'hasexitedwithcode-1073741511(0xc0000139)'EntryPointNotFound'.ActivationoftheWindowsStoreapp'9e380736-23cf-476f-b625-be7baa70ad56_jatac5b