rt 谢谢 winform下

解决方案 »

  1.   

    winform下 用timer控件刷新时间 定时调用显示时间的方法比如
    public void d()
    {
       xxx.text=DateTime.Now.Tostring();
    }
    然后timer。start()现在问题是如何用多线程实现
      

  2.   

    越来越糊涂,你显示时间怎么还多线程,一个timer控件,代码里直接写比如
    xxx.text=datetime.now.tostring();
    不就一直刷新的显示时间了吗?怎么还要多线程?
      

  3.   

    C#还封装了一种线程时间控件的东西
    如果自己做
    就开一个线程,要间隔15秒刷一次,就让该线程sleep(15)
    while(true)
    {
    //刷新控件
    Thread.Sleep(15);
    }
    注意线程间通信
      

  4.   


    using System;
    using System.Threading;public class MonitorSample
    {
    public static void Main(String[] args)
    {
    int result = 0; 
    Cell cell = new Cell( ); CellProd prod = new CellProd(cell, 20); 
    CellCons cons = new CellCons(cell, 20);  Thread producer = new Thread(new ThreadStart(prod.ThreadRun));
    Thread consumer = new Thread(new ThreadStart(cons.ThreadRun)); try
    {
    producer.Start( );
    consumer.Start( ); producer.Join( );
    consumer.Join( );  
    Console.ReadLine();
    }
    catch (ThreadStateException e)
    {
    Console.WriteLine(e);  
    result = 1; 
    }
    catch (ThreadInterruptedException e)
    {
    Console.WriteLine(e); 
    result = 1;
    }
    Environment.ExitCode = result;
    }
    }public class CellProd
    {
    Cell cell;         
    int quantity = 1;  public CellProd(Cell box, int request)
    {
    cell = box;          
    quantity = request;  
    }
    public void ThreadRun( )
    {
    for(int looper=1; looper<=quantity; looper++)
    cell.WriteToCell(looper);
    }
    }public class CellCons
    {
    Cell cell;        
    int quantity = 1;   public CellCons(Cell box, int request)
    {
    cell = box;        
    quantity = request; 
    }
    public void ThreadRun( )
    {
    int valReturned;
    for(int looper=1; looper<=quantity; looper++)
    valReturned=cell.ReadFromCell( );
    }
    }public class Cell
    {
    int cellContents;        
    bool readerFlag = false; 
    public int ReadFromCell( )
    {
    lock(this)
    {
    if (!readerFlag)
    {   
    try
    {
    Monitor.Wait(this);
    }
    catch (SynchronizationLockException e)
    {
    Console.WriteLine(e);
    }
    catch (ThreadInterruptedException e)
    {
    Console.WriteLine(e);
    }
    }
    Console.WriteLine("Consume: {0}",cellContents);
    readerFlag = false;    
    Monitor.Pulse(this);  

    return cellContents;
    }
       
    public void WriteToCell(int n)
    {
    lock(this) 
    {
    if (readerFlag)
    {  
    try
    {
    Monitor.Wait(this); 
    }
    catch (SynchronizationLockException e)
    {
    Console.WriteLine(e);
    }
    catch (ThreadInterruptedException e)
    {
    Console.WriteLine(e);
    }
    }
    cellContents = n;
    Console.WriteLine("Produce: {0}",cellContents);
    readerFlag = true;    
    Monitor.Pulse(this);  

    }
    }
      

  5.   

    错了  Sleep是毫秒级的...
    楼主注意