Tag: 处理

如何转换像素格式? 从Cb的32bppRGB到16bpp灰度

我需要为我的图像做一些阈值处理。 阈值滤波器function只接受8-16bpp灰度 。 我的位图图片具有32bppRGB像素格式。 请为此建议一些代码。 (我也想知道是否有可能没有逐像素操作) ps我正在使用Aforge.NET进行阈值处理。 谢谢 -Sagar

如果程序意外关闭,IDisposable对象是否会被丢弃?

如果程序意外退出(exception或进程终止)会发生什么? 是否存在程序将终止的此类(或其他)情况,但IDisposable对象将无法正确处理? 我问的原因是因为我正在编写与外围设备通信的代码,我想确保它不会被置于糟糕的状态。

C#System.Diagnostics.Process:无法在64位操作系统中启动32位exe文件

我有一个使用Turbo Pascal编译的32位exe文件。 我需要启动它。 当我使用Windows 7 32位时它运行良好,但现在我使用的是Windows 7 64位,我得到以下exception: 指定的可执行文件不是此OS平台的有效应用程序。 为了确保它在32位系统上运行,我在32位平台上启动了C#程序 – 它可以工作。 那么如何在64位操作系统中启动32位exe文件? 谢谢

调用Clear是否也处理了这些项目?

很多时候有一个明确的方法,从集合中删除所有项目,这些项目也被处置。 喜欢, toolStripMenuItem.DropDownItems.Clear(); 是足够的,或者我应该这样打电话: foreach (ToolStripItem item in toolStripMenuItem.DropDownItems) { toolStripMenuItem.DropDownItems.Remove(item); item.Dispose(); } 编辑:好吧ToolStripItem是一个不是问题的例子,对于那些说Clear已经足够的人我发现了另一个例子,TabControl也有项目集合和清除方法。 但TabControls可以有复杂的控件(至少我有),需要显式Dispose(即使它们在某些时候由GC自动处理,导致它们占用大量内存)。 我想最好的答案是divo评论处理项目,然后打电话给清楚。

解决问题“无法访问被处置对象。”例外

在我当前的项目中有一个Form类,如下所示: public partial class FormMain : Form { System.Timers.Timer timer; Point previousLocation; double distance; public FormMain() { InitializeComponent(); distance = 0; timer = new System.Timers.Timer(50); timer.AutoReset = true; timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); timer.Start(); } private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (previousLocation != null) { // some code UpdateDistanceLabel(distance); UpdateSpeedLabel(v); } previousLocation = Cursor.Position; […]

无论如何,在生成进程时是否指定了PrintTo打印机?

是)我有的 我目前正在编写一个程序,它接受一个指定的文件并用它执行一些操作。 目前,它打开它,和/或将其附加到电子邮件并将其邮寄到指定的地址。 该文件可以是以下格式:Excel,Excel报表,Word或PDF。 我目前正在做的是使用文件路径生成进程,然后启动进程; 但是我也正在尝试修复我添加的错误function,它根据指定的设置将动词“PrintTo”添加到启动信息中。 我需要的 我想要完成的任务是我想打开文档,然后将自己打印到程序本身命名的指定打印机。 然后,文件应自动关闭。 如果没有办法一般地执行此操作,我们可能能够为每种单独的文件类型提供一种方法。 你需要什么 这是我正在使用的代码: ProcessStartInfo pStartInfo = new ProcessStartInfo(); pStartInfo.FileName = FilePath; // Determine wether to just open or print if (Print) { if (PrinterName != null) { // TODO: Add default printer. } pStartInfo.Verb = “PrintTo”; } // Open the report file unless only set to […]

如何在最终确定静态变量之前得到通知

我什么时候可以清理存储在C#中的静态变量中的对象? 我有一个懒惰的初始化静态变量: public class Sqm { private static Lazy _default = new Lazy(); public static Sqm Default { get { return _default.Value; } } } 注意 :我刚刚将Foo改为static类。 如果Foo是静态的,它不会以任何方式改变问题。 但有些人确信,如果不先构建一个Foo实例,就不可能构造一个Sqm实例。 即使我确实创建了一个Foo对象; 即使我创建了100个,它也无法解决问题(何时“清理”静态成员)。 样品用法 Foo.Default.TimerStart(“SaveQuestion”); //…snip… Foo.Default.TimerStop(“SaveQuestion”); 现在,我的Sqm类实现了一个方法,当不再需要该对象时必须调用该方法,并且需要自行清理(将状态保存到文件系统,释放锁等)。 必须在垃圾收集器运行之前调用此方法(即在调用对象的终结器之前): public class Sqm { var values = new List(); Boolean shutdown = false; protected void Cleanup(ICollection stuff) { […]

处理列表的最佳方式

我有List对象。 我该如何处理清单? 例如, List usersCollection =new List(); User user1 = new User(); User user2 = new User() userCollection.Add(user1); userCollection.Add(user2); 如果我设置userCollection = null; 会发生什么? foreach(User user in userCollection) { user = null; } 哪一个最好?

C#使用FindWindowEx按名称和序号进行子句柄处理

根据http://msdn.microsoft.com/en-us/library/ms633500(v=vs.85).aspx我定义了FindWindowEx函数。 using System.Runtime.InteropServices; [DllImport(“user32.dll”, CharSet=CharSet.Unicode)] static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle); 现在我能够找到第一个 “Button”控件的句柄(从Spy ++获取名称),将childAfter设置为IntPtr.Zero 。 IntPtr hWndParent = new IntPtr(2032496); // providing parent window handle IntPtr hWndButton = FindWindowEx(hWndParent, IntPtr.Zero, “Button”, string.Empty); 如何在父窗口中获取“Button”控件的第二个 , 第三个或任何句柄? 事实是,按钮标题可能会有所不同,所以我无法通过名称定义第四个参数直接找到它们。

exception比返回值贵多少钱?

是否可以使用返回值和exception更改此代码: public Foo Bar(Bar b) { if(b.Success) { return b; } else { throw n.Exception; } } 对此,它会为成功和失败抛出单独的例外 public Foo Bar(Bar b) { throw b.Success ? new BarException(b) : new FooException(); } try { Bar(b) } catch(BarException bex) { return ex.Bar; } catch(FooException fex) { Console.WriteLine(fex.Message); }