【问题标题】:how to share a variable value across multiple different types of app in windows如何在 Windows 中的多个不同类型的应用程序之间共享变量值
【发布时间】:2014-12-22 18:46:24
【问题描述】:

我有一个用 C#.net 编写的示例 Windows 应用程序,并且我有一个全局变量,我需要在我的应用程序运行时将其共享给不同的应用程序。

下面是代码:

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test
{
    public partial class Form1 : Form
    {
        public string GlobalValue = string.Empty;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            if((textBox1.Text!="") && (textBox1.Text!=null))
            {
                GlobalValue = textBox1.Text.ToString();
            }

        }
    }
}

在上面的代码中,用户在文本框中输入一个值,并且 GlobalValue 在按钮单击事件时更新。

我想在不同的应用程序之间共享变量 GlobalValue 的值,以及如何在 C# 中实现。假设我正在运行 3D Mark 和我的示例应用程序,并且 3D Mark 应用程序或任何其他应用程序应该可以访问这个 GlobalValue。

我不会不使用注册表来存储值..需要其他方式

如果举个例子,对我真的很有帮助。

谢谢,

【问题讨论】:

  • 将 GlobalValue 写入文件\注册表\数据库等,其他应用程序应该读取它。
  • @Reniuz - 但根据要求,我不应该假设使用注册表......所以需要其他选择。
  • 那么你为什么没有提到这么重要的事情呢?其他选项使用任何通信协议将更新的值推送到客户端/侦听器(其他应用程序)
  • @Reniuz - 我稍后更新了问题。
  • 看看这个:stackoverflow.com/a/7894262/367764 答案,可能就是你要找的东西。

标签: c# variables cross-domain share


【解决方案1】:

您应该阅读这篇关于进程间通信的microsoft article,并为您的用例选择最佳解决方案。

总结一下:

文件映射是一种共享信息的简单方法(使您的数据看起来像一个文件),但您需要使用原语进行进程间同步。

管道和 Windows 套接字将帮助您克服同步问题,但您需要在所有需要访问(读取或写入)变量的应用程序中拥有适当的代码。

【讨论】:

    【解决方案2】:

    希望以下信息对您有所帮助

    您可以使用 Windows 注册 来保存您想要的任何值。

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      相关资源
      最近更新 更多