草庐IT

THREAD_NAME

全部标签

c# - 具有路由属性的模糊 Controller 名称 : controllers with same name and different namespace for versioning

我正在尝试添加API版本控制,我的计划是为不同命名空间中的每个版本创建一个Controller。我的项目结构是这样的(注意:每个版本没有单独的区域)Controllers||---Version0||||-----ProjectController.cs||-----HomeController.cs||---Version1||-----ProjectController.cs|-----HomeController.cs我正在为路由使用RoutingAttribute。因此,Version0中的ProjectController具有路由功能namespaceMyProject.Co

c# - 在 WPF 中获取 "<Property Name> was already registered by "<控件名称>"错误

我在WPF中有一个用户控件,它绑定(bind)到一个依赖属性。当我尝试编译应用程序时,出现“属性名称”已由“控件名称”注册的错误,设计器显示“无法创建“用户控件”的实例”错误。这是我的简单控件的样子:ExampleUserControl.xaml:ExampleUserControl.xaml.cs:publicpartialclassExampleUserControl:UserControl{publicDependencyPropertySomeStringValueProperty=DependencyProperty.Register("SomeStringValue",ty

c# - Thread.Sleep(TimeSpan) 有多准确?

我遇到过间歇性失败的单元测试,因为耗时不是我期望的。此测试的示例如下:Stopwatchstopwatch=newStopwatch();stopwatch.Start();TimeSpanoneSecond=newTimeSpan(0,0,1);for(inti=0;i大部分时间都通过了,但至少有一次失败了,因为:预期:大于等于2999但是是:2998我不明白它怎么可能少于3秒。Thread.Sleep或Stopwatch是否存在我不知道的准确性问题?就像对下面一些问题的更新一样。正在接受单元测试的场景是一个类,它允许调用一个方法来执行某些操作,如果它失败,请稍等片刻并调用该方法。上

C# : How to pause the thread and continue when some event occur?

当某些事件发生时,如何暂停线程并继续?我希望线程在单击按钮时继续。有人告诉我thread.suspend不是暂停线程的正确方法。还有其他解决方案吗? 最佳答案 你可以使用System.Threading.EventWaitHandle.EventWaitHandle会阻塞,直到收到信号为止。在您的情况下,它将通过按钮单击事件发出信号。privatevoidMyThread(){//dosomestuffmyWaitHandle.WaitOne();//thiswillblockuntilyourbuttonisclicked//co

c# - 何时在线程安全锁定代码中使用 'volatile' 或 'Thread.MemoryBarrier()'? (C#)

我什么时候应该使用volatile/Thread.MemoryBarrier()来保证线程安全? 最佳答案 当您想跨线程访问变量而不锁定时,您可以使用volatile/Thread.MemoryBarrier()。原子变量,例如int,总是一次性读取和写入整个变量。这意味着您永远不会在另一个线程更改它之前获得一半的值,而在它更改之后获得另一半。因此,您可以在不同线程中安全地读取和写入值,而无需同步。但是,编译器可能会优化一些读写操作,您可以使用volatile关键字来阻止这些操作。例如,如果您有这样的循环:sum=0;foreach

c# - WPF 调度程序 {"The calling thread cannot access this object because a different thread owns it."}

首先我需要说我是WPF和C#的菜鸟。应用程序:创建Mandelbrot图像(GUI)在这种情况下,我的调度员工作得很好:privatevoidprogressBarRefresh(){while((con.Progress)尝试使用以下代码执行此操作时,我收到了消息(标题):bmp=BitmapSource.Create(width,height,96,96,pf,null,rawImage,stride);this.Dispatcher.Invoke(DispatcherPriority.Send,newAction(delegate{img.Source=bmp;ViewBox.C

c# - LINQ to Entities Group By 表达式给出 'Anonymous type projection initializer should be simple name or member access expression'

我在这个表达式中遇到了上述错误:varaggregate=fromtinentities.TraceLinesjoinminentities.MethodNames.Where("it.NameLIKE@searchTerm",newObjectParameter("searchTerm",searchTerm))ont.MethodHashequalsm.MethodHashwhere(t.CallTypeId&(int)types)==t.CallTypeId&&t.UserSessionProcessId==m_SessionIdgrouptbym.Nameintodselect

c# - 属性 'name'是对象关键信息的一部分,不能修改。 Entity Framework

我正在尝试更新记录,但在context.SaveChanges();之后收到此错误消息Theproperty'name'ispartoftheobject'skeyinformationandcannotbemodified.这是更新函数的代码:if(context.EAT_SourceNames.Any(e=>e.name==newSourceName)){MessageBox.Show("NamealreadyexistsintheDatabase");}else{varnameToUpdate=context.EAT_SourceNames.SingleOrDefault(e=>

c# - 使用 Thread.Sleep 等待的替代方法

首先,我问的不是与C#-AlternativetoThread.Sleep?相同的问题,或AlternativetoThread.SleepinC#?.我认为我没有错误地使用它,并且在特定情况下需要一个真正的替代品。在代码分析运行期间,我看到了一个令人惊讶的违规行为:UsageofThread.Sleep()isasignofflaweddesign.此违规导致PeterRichie'sarticle关于为什么这构成糟糕的设计。我们都知道线程创建是昂贵的,线程中的阻塞意味着对池的争用。我们也知道每个线程都会分配一个meg的内存,所以它应该有一个短的生命周期,阻塞在UI上是邪恶的,使用s

c# - Thread.Abort() 是如何工作的?

我们通常在将无效输入传递给方法或对象即将进入无效状态时抛出异常。让我们考虑以下示例privatevoidSomeMethod(stringvalue){if(value==null)thrownewArgumentNullException("value");//Methodlogicgoeshere}在上面的示例中,我插入了一个抛出ArgumentNullException的throw语句。我的问题是运行时如何设法抛出ThreadAbortException。显然不可能在所有方法中都使用throw语句,甚至运行时也设法在我们的自定义方法中抛出ThreadAbortException。