Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Hiển thị thời gian đã chạy chương trình bằng cách nào?

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    2

    Mặc định Hiển thị thời gian đã chạy chương trình bằng cách nào?

    Mình muốn viết một đoạn chương trình hiển thị thời gian chạy chương trình. Khi chạy cứ tang theo s đến khi nào dừng chương trình. Và nó được hiện lên song song vói chương trình thấy trực tiếp chứ ko định dùng Messbox để hiện khi kết thúc chương trình. Nói đơn giản nó như 1 bản đo thời gian trong game vậy. Nhưng ko biết dung tool nào để thể hiện nó
    Các bài hướng đẫn mình đã tham khảo là sử dụng stopwatch
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Diagnostics;
    10. using System.Threading;
    11.  
    12. namespace WindowsFormsApplication2
    13. {
    14.     public partial class Form1 : Form
    15.     {
    16.         Stopwatch stopwatch = new Stopwatch();
    17.         public Form1()
    18.         {
    19.             InitializeComponent();
    20.         }
    21.         private void Form1_Load(object sender, EventArgs e)
    22.         {
    23.             timer1.Enabled = true;
    24.             timer1.Interval = 100;
    25.             stopwatch.Start();
    26.         }
    27.         private void timer1_Tick(object sender, EventArgs e)
    28.         {
    29.             this.label1.Text = stopwatch.Elapsed.ToString();
    30.         }
    31.         private void bltStart_Click(object sender, EventArgs e)
    32.         {
    33.             for (int i = 0; i < 1000; i++)
    34.                 Thread.Sleep(1);
    35.         }
    36.  
    37.     }
    38. }
    Với ví dụ này đã tính thời gian chạy chương trình, hiển thị thời gian đã chạy chương trình KHI CHƯA BẤM NÚT bltStart_Click. Tuy nhiên khi thực thi bltStart_Click, quá trình hiển thị thời gian bị dừng một lúc cho đến khi đoạn code sau thực thi xong
    for (int i = 0; i < 1000; i++)
    Thread.Sleep(1);
    Mình muốn hỏi các bạn có giải pháp nòa lập trình trên win form để khi thực thi ví dụ: vòng lặp, hoặc các công việc khác mà đồng hồ vẫn hiển thị thời gian chương trình đang chạy không.
    Cảm ơn các bạn đã quan tâm

  2. #2
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Theo mình thì dùng một cái Thread chỉ làm việc hiển thị thời gian. Bạn dùng thử coi ok ko.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    2

    Bạn viết demo cho mình với, về Thread mình không rõ lắm

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    hi. thì bạn tìm hiểu chứ.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  5. #5
    Ngày gia nhập
    09 2012
    Bài viết
    42

    Window Form có 1 cái là BackGroundWorker chạy y chang như MutilThread nhưng dễ dùng hơn nhiều
    Bạn ra cửa sổ Design ấy , bên toolbox có cái component tên BackGroundWorker kéo ra thả vào là xong
    .Nó có 3 cái sự kiện tương ứng là Do work , Complete ,Change. Để rõ hơn thì mở MSDN để xem cách hoạt động. Nó tạo ra một luồng chạy ngầm tốc độ sử lý thì phụ thuộc vào CPU .

    Lời khuyên : cái này chỉ dùng khi nào bạn muốn chạy đoạn code không đòi hỏi chính xác từng giây Ví dụ thời gian để hoàn thành nạp 1 chương trình chẳng hạn cái processBar nó tua liên tục nhờ vào cái BackGroundWorker này .
    Còn nếu theo yêu cầu của bạn thì mình nghĩ bạn đang định đo xung nhịp của máy tính của mình à.
    Theo mình thấy timer chạy chính xác như interval time, nhưng câu lệnh bên trong nó thì lại phải dựa vào xung mạch CPU để thực hiện mà trong lục này main thread đang bận bịu với vòng for cho nên có độ trễ. Nếu bạn cho vòng for giá trị i nhỏ hơn giá trị internalTime có thể sẽ không có độ trễ.

Các đề tài tương tự

  1. Database Chương trình không chạy sau 1 thời gian sử dụng
    Gửi bởi MYNAM trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 25-04-2013, 05:07 PM
  2. Trả lời: 0
    Bài viết cuối: 24-02-2013, 11:16 PM
  3. in ra thời gian chạy chương trình
    Gửi bởi AlexF trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 13
    Bài viết cuối: 18-02-2009, 07:35 PM
  4. Đánh giá thời gian chạy
    Gửi bởi punkrock trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2008, 06:13 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn