我目前有一个类,在我启动程序时实例化它。该类本身将创建一个新线程并开始搜索来自路由器的广播。
除了 MainWindow 之外,我还有其他窗口需要能够访问存储在此类实例中的数据。但是,我不确定其他窗口如何引用此数据。
有没有其他方法可以存储此类的实例,以便在应用程序范围内访问它?我需要它在应用程序的其余部分启动时立即启动,因此(对我而言)在第一个窗口中实例化该类似乎是合乎逻辑的。
namespace Lalu_WPF
{
public partial class MainWindow : Window
{
// data storage for program
public FindRouter finder = new FindRouter();
public MainWindow()
{
......
最佳答案
不要创建单例(注意大写字母)。它在多线程环境(可变单例)中容易出错并且不利于测试。
您有什么要求?
您必须在一个应用程序中有一个对象还是在整个 CLR 中有一个对象?
我赌第一个。
在您的 App 类 (App.xaml.cs) 中创建一个对象,然后通过 getter 访问它
App MyApplication = ((App)Application.Current);
MyApplication.Router;
关于c# - 在 C# 中的多个对象之间共享一个实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480625/