C# 在类和GUI之间移动数据

C# 在类和GUI之间移动数据,c#,class,error-handling,directory,C#,Class,Error Handling,Directory,我的程序在创建文件后立即将文件从一个文件夹移动到另一个文件夹。这些文件将以每秒50左右的速度传入。该程序监视两个文件夹,并将这两个文件夹中的文件发送到计算机上的特定目录 我想弄清楚的一件事是可能出现的错误。我考虑过使用messagebox.show让用户知道,比如说“文件夹不存在”,但是如果有10000个左右的文件无法移动,或者如果对目录的访问被拒绝,计算机可能会因为10000个弹出窗口而耗尽内存 另一种方法是简单地在GUI控件上向用户显示消息,并停止文件监视程序。问题是,我的folderwat

我的程序在创建文件后立即将文件从一个文件夹移动到另一个文件夹。这些文件将以每秒50左右的速度传入。该程序监视两个文件夹,并将这两个文件夹中的文件发送到计算机上的特定目录

我想弄清楚的一件事是可能出现的错误。我考虑过使用messagebox.show让用户知道,比如说“文件夹不存在”,但是如果有10000个左右的文件无法移动,或者如果对目录的访问被拒绝,计算机可能会因为10000个弹出窗口而耗尽内存

另一种方法是简单地在GUI控件上向用户显示消息,并停止文件监视程序。问题是,我的folderwatcher类无法访问GUI中的状态栏。因此,如果状态栏被称为messages,我不能简单地将“messages.text”分配给folderwatcher类中抛出的异常中的错误消息

我还被告知,将GUI上的控制权交给folderwatcher类是不好的做法,因为它违背了面向对象编程的目的。(沿着这些思路)

因此,我考虑构建一个只存储数据/状态消息的类。我的GUI将钩住该类,folderwatcher类将在发生错误时更新它。发生这种情况时,我的GUI将更新,messages.text将显示错误供用户查看

我认为这个概念会很有效,但我不确定从哪里开始。如果您需要任何额外的信息,我很乐意提供,但我需要的是反馈和提示/提示

另外,我构造一个单独的类来保存信息的方法是在类和GUI之间传递错误消息的最佳方法吗?还是有更简单的方法

真诚地


tf.rz。谢谢你的帮助!非常感谢。

使用具有不同值的字符串构建私有方法,当出现错误时,只需获取并将值设置到相应的Messagebox。可以指定为全局变量。

我已经通过另一个只包含一个字符串和一个事件处理程序的类钩住了该类和GUI。GUI订阅事件处理程序,该类将创建创建的新类的实例并修改字符串。当字符串更改时,GUI将更新,用户将看到消息。感谢所有做出贡献的人

有没有理由不在你的GUI(或任何其他关心的人)可以订阅的文件夹监视程序上放置事件?@Pete M:没有,这也是一种可行的方法,但这超出了我的知识范围,我目前正在努力扩展。你能给我一个关于如何实现你的想法的线索吗?关于它的价值,请参阅MSDN上IObserver接口的文档。您的问题实际上是订阅者/发布者模式。filewatcher“发布”了一些东西(本例中为错误),UI“订阅”了OneError事件。这非常有帮助@Icarus,我需要一段时间来阅读所有内容,但我感谢您的参考。=)