首页 新闻 会员 周边

C#如何在类间共享软件参数

0
[待解决问题]

我是LabVIEW程序员,最近初学C# Winform开发,有个问题很迷惑,想请教大家:
不同类或不同命名空间下,通常是用什么办法来做到数据共享的。比如有个线程是做图像处理,图像处理有很多的参数,这些参数要通过一个参数设置的界面去修改、保存,那如果修改了参数,怎么让图像处理的线程实时更新新的参数呢。
按照我用LabVIEW的习惯,我会定义一个类似全局变量的东西,它在一个地方被改了后,其他所有地方都能自动更新,不需要专门去处理,但是放到C#我就不知道该怎么办了,我想过用静态类,但是静态类又不能实例化对象,没法把对象序列化保存到本地文件,所以问问大家比较正规、常用的方法

lbbqq的主页 lbbqq | 菜鸟二级 | 园豆:202
提问于:2023-04-08 16:37
< >
分享
所有回答(5)
0

图像处理这边使用对象?然后对象属性就是图像处理的参数,然后界面通过调用对象方法修改图像处理的参数,线程中每轮处理都要根据本身的属性来设置。也可以用静态的全局变量,我看我们老项目里用的全局静态变量

echo_lovely | 园豆:1437 (小虾三级) | 2023-04-08 19:27
0

在C#中,要在不同的类或命名空间中共享参数,可以使用多种方法。下面列出几种常用的方法:

静态类/静态变量
静态类和静态变量可以在整个应用程序中共享,不需要实例化,可以直接通过类名来访问。如果需要修改参数,可以直接修改静态变量的值。静态类中的静态变量可以在整个应用程序中共享,但是不能进行序列化。

单例模式
单例模式是一种创建对象的模式,它保证一个类只有一个实例,并提供一个访问它的全局访问点。可以将参数保存在单例对象中,并在需要使用参数的类中获取单例对象来访问参数。单例模式可以进行序列化,并且可以实现多个线程共享数据的功能。

应用程序配置文件
应用程序配置文件是一个XML文件,可以保存应用程序的参数设置。可以将需要共享的参数保存在配置文件中,并在需要使用参数的类中读取配置文件。应用程序配置文件可以进行序列化,并且可以实现多个线程共享数据的功能。

事件
事件是一种在对象之间进行通信的方式。可以定义一个事件,并在需要使用参数的类中订阅事件。当参数发生变化时,可以触发事件,通知所有订阅者更新参数。事件可以实现多个线程共享数据的功能。

以上方法都有各自的优缺点,需要根据实际情况选择。如果需要在不同的应用程序之间共享数据,可以考虑使用WCF或者Web API等技术。

Technologyforgood | 园豆:5675 (大侠五级) | 2023-04-09 08:58

非常感谢您的耐心回答!

支持(0) 反对(0) lbbqq | 园豆:202 (菜鸟二级) | 2023-04-11 11:22
0

百度搜索“ c# 观察者模 式”。 C# ,Java这类语言 都 是通过这样 的模 式来实现的,C# 还直接集成了“事件”来实现

需要格局 | 园豆:2145 (老鸟四级) | 2023-04-10 09:46

非常感谢,我去查查

支持(0) 反对(0) lbbqq | 园豆:202 (菜鸟二级) | 2023-04-11 11:22
0

可以不用静态类,用静态字段,这样既可以实例化又可以全局调用

猝不及防 | 园豆:2781 (老鸟四级) | 2023-04-11 10:22

好的,非常感谢

支持(0) 反对(0) lbbqq | 园豆:202 (菜鸟二级) | 2023-04-11 11:22
0

单例模式才是最优解

二次元攻城狮 | 园豆:462 (菜鸟二级) | 2023-06-07 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册