نمایش نتایج 1 تا 4 از 4

نام تاپیک: خطا در استفاده از توابع Clipboard در داخل System.Timer

  1. #1

    Question خطا در استفاده از توابع Clipboard در داخل System.Timer

    با سلام
    در برنامه ام یک تایمر از نوع System.Timerقرار دادم که هنگام اجرای تابع فراخوان تایمر به محض رسیدن به توابع کلیپبورد مثل Clipboard.Clear ویا Clipboard.SetText خطا STAThread می دهد:
    متن کد:



    namespace WindowsFormsApplication2
    {
    public partial class Form1 : Form
    {

    public System.Timers.Timer tTimer = new System.Timers.Timer(1000);
    DateTime d;


    public Form1()
    {
    InitializeComponent();
    }



    public void start()
    {
    tTimer.Elapsed += new ElapsedEventHandler(RunTimer);
    tTimer.Enabled = true;
    tTimer.Start();
    }


    public void RunTimer(Object stateInfo, ElapsedEventArgs e)
    {
    if (d < DateTime.Now)
    {
    tTimer.Stop();
    Clipboard.Clear();
    string reportText = File.ReadAllText(@"c:\test.txt");

    Clipboard.SetText(reportText);
    }
    }


    private void button1_Click(object sender, EventArgs e)
    {
    if (button1.Text == "Start Timer")
    {
    DateTime dt = dateTimePicker1.Value;
    if (dt < DateTime.Now)
    {
    textBox1.Text = "Invalid date";
    return;
    }


    d = dt;
    button1.Text = "Stop Timer";
    start();
    }
    else
    tTimer.Stop();
    }


    private void button2_Click(object sender, EventArgs e)
    {
    if (Clipboard.ContainsText())
    textBox1.Text = Clipboard.GetText();
    else
    textBox1.Text = "No text to Paste";
    }


    private void Form1_Load(object sender, EventArgs e)
    {
    Clipboard.Clear();
    dateTimePicker1.Value = DateTime.Now;
    }
    }
    }




    اینم خود پیام خطا:
    لطفا" راهنمایی فرمایید با تشکر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: خطا در استفاده از توابع Clipboard در داخل System.Timer

    بجای استفاده از System.Timers.Timer از System.Windows.Forms.Timer استفاده کنید.

  3. #3

    نقل قول: خطا در استفاده از توابع Clipboard در داخل System.Timer

    نقل قول نوشته شده توسط plus مشاهده تاپیک
    بجای استفاده از System.Timers.Timer از System.Windows.Forms.Timer استفاده کنید.
    اگر از System.Timer.Form استفاده کنم زمانی که تایمر را اجرا می کنم برنامه را به حالت Not Responding... می بره چون نخ اصلی برنامه را نمی توانم معطل نگه دارم تا زمان مد نظرم فرا برسه.
    برای همین از sysytem.timer استفاده کرده که خودش را بروی یک نخ مجزا از نخ اصلی اجرا می کنه

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: خطا در استفاده از توابع Clipboard در داخل System.Timer

    خوب مشکل خطایی هم که بهش میخورید اینه که باید در همون Thread مربوط به UI با Clipboard کار کنید.نمیدونم چه نیازی به معطل کردن هست...تایمر مدام رویدادش Raise میشه..زمان رو بررسی کنید و در صورتی که زمان مورد نظرتون هست عمل رو انجام بدین..
    هرچند استفاده از Clipboard که یک منبع اشتراکی در کل ویندوز هست در Timer اشتباه هست.

تاپیک های مشابه

  1. سوال: مشکل در هنکام استفاده از توابع کلاس Clipboard در Thread
    نوشته شده توسط محمد ذبیحی نژاد در بخش C#‎‎
    پاسخ: 7
    آخرین پست: شنبه 22 شهریور 1393, 19:07 عصر
  2. سوال: خطا در هنگام استفاده از تابع ()Clipboard.SetText
    نوشته شده توسط pupire در بخش C#‎‎
    پاسخ: 0
    آخرین پست: دوشنبه 09 تیر 1393, 21:51 عصر
  3. پاسخ: 21
    آخرین پست: یک شنبه 29 دی 1392, 12:37 عصر
  4. مشکل در استفاده از توابع جاوا داخل صفحات
    نوشته شده توسط sara_aryanfar در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 06 دی 1390, 23:11 عصر
  5. سوال: خطا در هنگام استفاده از توابع شمسی در عبارات SQL
    نوشته شده توسط ali190 در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: چهارشنبه 15 تیر 1390, 01:10 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •