首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 数据仿真 不住刷新 求思路

2013-11-16 
c# 数据仿真 不断刷新 求思路各位大神,小弟现在在c#上面遇到一些小问题,求教!具体问题如下,希望给个具体的

c# 数据仿真 不断刷新 求思路
    各位大神,小弟现在在c#上面遇到一些小问题,求教!具体问题如下,希望给个具体的思路。
    在界面加一个textBox,再加一个button。要求是点击button开始仿真,在textBox里每隔0.5秒刷新我自己定义的数据,每隔10秒循环一次。再次点击button,停止仿真。是不是要用到线程,对于线程还不是很熟悉!谢谢各位了。 c#?数据?模拟
[解决办法]
如果只是单任务,去控制timer即可
[解决办法]
你上面的用Timer就可以了
[解决办法]
timer来控制可行不?
[解决办法]
用WPF,绑定ObservableCollection<Model>集合,Model继承以下类,后台只要修改集合,UI就会自动更新了。具体你可以查询下相关的知识。


/// <summary>
    /// 负责属性更改通知
    /// </summary>
    public class ObservableObject : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        public virtual void NotifyPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }

[解决办法]
直接说想要的效果
要什么功能
然后截个图
说不定有更好的办法
[解决办法]
        private System.Timers.Timer DisplayTimer = new System.Timers.Timer(500);
        AsyncOperation asyncOp;
        bool Flg = false;
        DateTime startDt = DateTime.Now;

        private void Form1_Load(object sender, EventArgs e)
        {
            this.DisplayTimer.Elapsed += new System.Timers.ElapsedEventHandler(DisplayTimer_Elapsed);
            this.asyncOp = AsyncOperationManager.CreateOperation(this);  
        }

        private void DisplayTimer_Elapsed(object sender, EventArgs e)
        {
            Random rd = new Random();
            this.asyncOp.Post((obj) =>
            {
                this.label1.Text = rd.Next(0, 100).ToString();

                if (DateTime.Now >= startDt.AddSeconds(10))
                {
                    System.Console.WriteLine("再来一次!");
                    startDt = DateTime.Now;
                }

            }, null);
        }
                
        private void button1_Click(object sender, EventArgs e)
        {
            this.startDt = DateTime.Now;

            if (Flg)
            {
                // 接受WiFi数据
                Flg = false;
                this.DisplayTimer.Stop();

                Task.Factory.StartNew(() =>


                  {
                      while (!Flg)
                      {

                          Random rd = new Random();
                          this.asyncOp.Post((obj) =>
                              {
                                  this.label1.Text = rd.Next(100, 200).ToString();
                              }, null);
                          Thread.Sleep(500);
                          if (DateTime.Now >= startDt.AddSeconds(10))
                          {
                              System.Console.WriteLine("接受新的数据");
                              startDt = DateTime.Now;
                          }

                      }
                  });

            }
            else
            {
                //监视开始
                this.DisplayTimer.Start();
                Flg = true;
            }
        }


[解决办法]
这么简单的东西,放个timer就好了
[解决办法]
引用:
这么简单的东西,放个timer就好了

+1

热点排行