Tag: c#

如何在非UI线程中编辑WritableBitmap.BackBuffer?

我的应用程序运行CPU重的algorythms编辑放置在WPF窗口的图像。 我需要在后台线程中完成编辑。 但是,尝试在非UI线程中编辑WritableBitmap的BackBuffer会引发InvalidOperationException。 private WriteableBitmap writeableBitmap; private void button1_Click(object sender, RoutedEventArgs e) { // Create WritableBitmap in UI thread. this.writeableBitmap = new WriteableBitmap(10, 10, 96, 96, PixelFormats.Bgr24, null); this.image1.Source = this.writeableBitmap; // Run code in non UI thread. new Thread( () => { // ‘Edit’ bitmap in non UI thread. this.writeableBitmap.Lock(); // Exception: The calling […]

无论表单是否具有焦点,我都可以确保我的控件能够捕获第一个事件吗?

我对C#比较陌生。 我有一个带按钮的窗口。 如果窗口没有聚焦,我第一次点击一个按钮,第一次点击就会抓住窗口的焦点,所有后续点击将执行各自的操作。 有没有办法执行与按钮关联的事件而不是抓住焦点?

模型中的MVC5 Razor NullReferenceException

出于某种原因,每当我尝试访问我的模型时,我都会收到NullReferenceException。 这是我的控制器的代码: public async Task Bar(string fooSlug, int barId) { var foo = await mediaService.GetFoo(fooSlug); var bar = await barService.GetBarFromFooByTitleId(foo.TitleId, barId); var viewModel = new ViewModels.BarViewModel(foo, bar); return View(viewModel); } ViewModel中的代码: public class BarViewModel { public Models.Sub.FooDetails Foo{ get; set; } public Models.Sub.BarDetails Bar { get; set; } public BarViewModel(Models.Sub.FooDetails foo, Models.Sub.BarDetails bar) { this.Foo […]

ASP.NET MVC重新编译限制达到了15个HostingEnvironment,启动了关闭HostingEnvironment导致关机

在某些时候,在代码推送后不久,我们看到在我们的Web应用程序中发生了大量重启,没有记录任何问题。 所以我发现这篇文章: http : //weblogs.asp.net/scottgu/433194并且我们添加了Application_End日志记录,它立即显示了这个: _shutDownMessage =重新编译限制达到了15个HostingEnvironment启动了关闭HostingEnvironment导致在系统的System.Environment.get.StackTrace()处的System.Environment.GetStackTrace(Exception e,Boolean needFileInfo)处关闭_shutDownStack =,系统的System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal() System.Threading.ExedownDemand(在System.Web.HttpRuntime.ShutdownAppDomain(String stackTrace)上的System.Threading.ExedownCallBack(对象状态)System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback回调)中的.Web.Hosting.HostingEnvironment.InitiateShutdownWithoutDemand() System.Threading.ThreadPoolWorkQueue上的System.Threading.Quereading.QuereadingUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()中的System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,Object状态,Boolean preserveSyncCtx)处的System对象状态,布尔值preserveSyncCtx) 。调度() 谷歌搜索这个错误显然很少,所以我们更新了我们的web.config 和中提琴! 一切都恢复正常。 我们彻底审查了我们的变化,但没有发现任何我们认为可能是罪魁祸首的事情。 有没有其他人遇到这个或类似的,或者知道/怀疑世界上有什么可能导致这种情况? 任何反馈都会很棒!

展平处理的AggregateExceptions

我遇到了一些我在AggregateException上调用flatten问题,但是里面仍然存在另一个AggregateException ! 这显然意味着它们正在链中传播并被转换为另一个AggregateException 。 有没有办法递归展平所有内部AggregateExceptions? 通常,我将使用handle delegate来处理这些,但如果有另一个内部AggregateExceeption则返回false。 我没有正确处理这些问题吗? 编辑:因为我已经在调用Flatten,所以看起来问题是它直到稍后在callstack中被捕获。 这是我正在调用Flatten()的代码。 要在堆栈跟踪中使用,此方法称为WriteExceptionRecord(string,FileInfo): do { try { using (var stream = file.Open(FileMode.Append, FileAccess.Write, FileShare.None)) { using (StreamWriter writer = new StreamWriter(stream)) { await writer.WriteLineAsync(data); } } } catch (AggregateException ex) { ex.Flatten().Handle((x) => { if (x is IOException) { retryNeeded = true; retryLeft–; Thread.Sleep(500); return true; } […]

C#动态添加事件处理程序

嗨我有一个简单的问题。 这是我的代码: XmlDocument xmlData = new XmlDocument(); xmlData.Load(“xml.xml”); /* Load announcements first */ XmlNodeList announcements = xmlData.GetElementsByTagName(“announcement”); for (int i = 0; i < announcements.Count; i++) { ToolStripMenuItem item = new ToolStripMenuItem(); item.Name = announcements[i].FirstChild.InnerText; item.Text = announcements[i].FirstChild.InnerText; /* HERE IS WERE I NEED HELP */ item.Click += new EventHandler(); this.freedomMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { item }); […]

List 线程安全上的Parallel.ForEach

就线程安全问题而言,可以做或者我需要使用不同的集合吗? List fileInfo = getList(); Parallel.ForEach(fileInfo, fileMember => { //Modify each fileMember }

如何从RadioButtonList获取所选值?

我的页面上有一个RadioButtonList,它通过Data Binding填充 如何获取用户在“提交”方法中选择的单选按钮的值?

反序列化二进制文件的一部分

是否可以反序列化二进制文件的一部分? 基本上我有一个类似于下面的对象,我将其序列化为二进制文件。 public class MyObject { public string Name { get; set; } public int Value { get; set; } public IList { get; set; } // lots of data in here (order of kB-MB) } 我想要的是能够通过填充ListView以进行文件选择来反序列化Name和Value ,然后在需要时反序列化文件的其余部分(即用户从ListView选择该文件)。 与往常一样,任何帮助都非常感谢,如果建议任何第三方库,他们需要能够在商业环境中自由使用。

log4net:动态创建记录器,我应该担心什么吗?

我需要动态创建记录器,所以有了这里的post和reflection器的帮助我已经设法动态创建记录器,但我想知道我是否应该担心别的……我不知道其含义可以做到。 public static ILog GetDyamicLogger(Guid applicationId) { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); RollingFileAppender roller = new RollingFileAppender(); roller.LockingModel = new log4net.Appender.FileAppender.MinimalLock(); roller.AppendToFile = true; roller.RollingStyle = RollingFileAppender.RollingMode.Composite; roller.MaxSizeRollBackups = 14; roller.MaximumFileSize = “15000KB”; roller.DatePattern = “yyyyMMdd”; roller.Layout = new log4net.Layout.PatternLayout(); roller.File = “App_Data\\Logs\\”+applicationId.ToString()+”\\debug.log”; roller.StaticLogFileName = true; PatternLayout patternLayout = new PatternLayout(); patternLayout.ConversionPattern = “%date [%thread] %-5level […]