• سوال : استفاده از تایمر در سی شارپ
    #1
    Note 
    سلام

    من با تایمر کار کردم اما اینجا به یک مشکل بر خوردم اونم اینه که دارم یک قسمت میسازم که مثلا به محظ ورود کاربر به اتاق چت اون رو Member کنه اما با فاصله زمانی 5 ثانیه اینکارو بکنه ، یعنی اینکه اول آیدی که وارد شد رو ذخیره کنه و بعد از گذشت 5 ثانیه اون رو member کنه

    به مثال زیر توجه کنید :
    [CSHARP]
    private void room1(object sender, agsXMPP.protocol.client.Presence pres)
    {
    if (InvokeRequired)
    {
    BeginInvoke(new agsXMPP.protocol.client.PresenceHandler(room1), new object[] { sender, pres });
    return;
    }
    else
    {

    if (pres.Type == PresenceType.available)
    {
    x.Send("<iq xmlns='jabber:client' to='" + txtroom.Text + "@conference.jabber.org' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='" + pres.From.Resource + "@jabber.org' /></query></iq>");
    }
    }
    }
    [/CSHARP]

    این دستور هر کی که وارد اتاق چت بشه رو member میکنه
    من میخوام دقیقا همین کد رو با تایمر انجام بده همونطور که بالا گفتم

    من خودم اینکار و انجام دادم اما اشتباه بود ، چطوری؟ اینجوری :
    من اومدم تعریف کردم که به محض ورود آیدی 5 ثانیه بعد آیدی رو member کنه ، با این فقط یک آیدی member میشد و آیدی های بعدی که وارد میشدند هیچ کاری روی اونها انجام نمیشد و به اصطلاح آیدی از دست برنامه در میرفت
    من میخوام آیدی ها رو به محض ورود حالا چه یه آیدی و چه صد آیدی ، اول ذخیره کنه و بعد تک تک هرکدوم رو با گذشتِ 5ثانیه member کنه و وقتی که member کردن تموم شد لیست ذخیره ها رو پاک کنه ، اینجوری دیگه آیدی از دست برنامه در نمیره و تک تک آیدی ها به ترتیب با فاطله زمانی 5 ثانیه member میشن و لیست ذخیره ها هم پاک میشه و برای تکرار این کار برای بار های بعد آماده میش و آیدی اصلی خود برنامه هم مسدود نمیشه

    ممنون

    پاسخ
    #2
    Note 
    سلام میتونی از sleep استفاده کنی
    در صورت امکان پروژه رو ضمیمه کن تا بهتر بتونیم کمک کنیم

    پاسخ
    #3
    Note 
    اینم پروژه با سی شارپ 2010 نوشته شده :


    پاسخ
    #4
    Note 
    agsXMPP رو هم بذارید

    .Are you a programmer? welcome home
    ببخشید که یکم کم پیدا شدیم Blush
    پاسخ
    #5
    Note 
    اون کامپوننت کمی حجمش بالاست من همینطوری یه چیز درست کردم فکر کنم باید کار کنه میتونی بجای اون کدی که member میکنه تایمر رو فعال کنی بعد کد اصلی رو تو تایمر بذاری باید حواست باشه که بعد تایمر باید خودش رو غیر فعال کنه

    [CSHARP]using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    //./////////////////////////////

    using agsXMPP;
    using agsXMPP.Xml.Dom;
    using agsXMPP.protocol.client;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    XmppClientConnection x = new XmppClientConnection();

    private void button1_Click(object sender, EventArgs e)
    {
    x.Server = "nimbuzz.com";
    x.ConnectServer = "o.nimbuzz.com";
    x.Open(txtid.Text, txtpw.Text, txtres.Text , 50);
    x.AutoRoster = true;

    x.OnAuthError += new XmppElementHandler(failed);
    x.OnLogin += new ObjectHandler(connected);
    x.OnClose += new ObjectHandler(dc);
    x.OnPresence += new agsXMPP.protocol.client.PresenceHandler(room);
    }
    private void failed(object sender, Element e)
    {
    if (base.InvokeRequired)
    {
    base.BeginInvoke(new XmppElementHandler(failed), new object[] { sender, e });
    }
    else
    {
    txtid.BackColor = Color.Red;
    txtpw.BackColor = Color.Red;
    txtres.BackColor = Color.Red;
    txtid.Enabled = true;
    txtpw.Enabled = true;
    txtres.Enabled = true;
    }
    }

    private void connected(object sender)
    {
    if (base.InvokeRequired)
    {
    base.BeginInvoke(new ObjectHandler(connected), new object[] { sender });
    }
    else
    {
    txtid.BackColor = Color.Green;
    txtpw.BackColor = Color.Green;
    txtres.BackColor = Color.Green;
    txtid.Enabled = false;
    txtpw.Enabled = false;
    txtres.Enabled = false;
    }
    }

    private void dc(object sender)
    {
    if (base.InvokeRequired)
    {
    base.BeginInvoke(new ObjectHandler(dc), new object[] { sender });
    }
    else
    {
    txtid.BackColor = Color.Yellow;
    txtpw.BackColor = Color.Yellow;
    txtres.BackColor = Color.Yellow;
    txtid.Enabled = true;
    txtpw.Enabled = true;
    txtres.Enabled = true;
    }
    }

    private void button2_Click(object sender, EventArgs e)
    {
    x.Close();
    }

    private void room(object sender, agsXMPP.protocol.client.Presence Pres)
    {


    if (InvokeRequired)
    {
    base.BeginInvoke(new agsXMPP.protocol.client.PresenceHandler(room), new object[] { sender, Pres });
    return;
    }
    else
    {
    if (Pres.Type == PresenceType.available)
    {

    if (checkBox1.Checked == true)// AUTO MEMBER
    {
    timer1.Interval = 5000;
    timer1.Enabled = true;

    // x.Send("<iq xmlns='jabber:client' to='" + txtroom.Text + "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='" + Pres.From.Resource + "@nimbuzz.com' /></query></iq>");
    }
    else
    {
    if (checkBox1.Checked == false)
    {
    MessageBox.Show("Auto Member Khamosh Shod");
    }
    }
    }
    }
    }

    private void button3_Click(object sender, EventArgs e)
    {
    try
    {
    x.Send("<presence to='" + txtroom.Text + "@conference.nimbuzz.com/" + txtid.Text + "' xml:lang='en'><x xmlns='http://jabber.org/protocol/muc'><password>" + txtroompw.Text + "</password></x></presence>");
    }
    catch { }
    }

    private void button4_Click(object sender, EventArgs e)
    {
    x.Send("<presence to='" + txtroom.Text + "@conference.nimbuzz.com/' type='unavailable'></presence>");
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    x.Send("<iq xmlns='jabber:client' to='" + txtroom.Text + "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='" + Pres.From.Resource + "@nimbuzz.com' /></query></iq>");
    timer1.Enabled = false;
    }




    }
    }
    [/CSHARP]

    .Are you a programmer? welcome home
    ببخشید که یکم کم پیدا شدیم Blush
    پاسخ
    #6
    Note 
    سلام من تازه اومدم خونه و انجام دادم اما توی تایمر ذث Pres گیر میده و میگه : Does Not Exist in the current context

    تنها در یک صورت به Pres گیر نمیده که توی این قرار بگیره :
    [CSHARP]
    if (Pres.Type == PresenceType.available)
    {
    }
    [/CSHARP]

    و خود این هم تنها در یک صورت ارور نمیده که توی Voide خودش یعنی این باشه :
    [CSHARP]
    private void room(object sender, agsXMPP.protocol.client.Presence Pres)
    {


    if (InvokeRequired)
    {
    base.BeginInvoke(new agsXMPP.protocol.client.PresenceHandler(room), new object[] { sender, Pres });
    return;
    }
    else
    {
    }
    }
    [/CSHARP]

    چیکار کنم!؟!؟

    پاسخ
    #7
    Note 
    سلام به همه
    این کد تایمر رو اینطوری کن شاید درست بشه
    [CSHARP]private void timer1_Tick(object sender, EventArgs e, agsXMPP.protocol.client.Presence Pres)[/CSHARP]

    ***********
    پاسخ
    #8
    Note 
    [تصویر:  ?di=33QH]

    این رو داد

    پاسخ
    ایجاد موضوع جدید   پاسخ به موضوع  

    موضوعات مرتبط با این موضوع...
    موضوع نویسنده پاسخ بازدید آخرین ارسال
      سوال استفاده از بانک اطلاعاتی خارجی در ویندوز فون M.Taghi 2 842 05-07-2015 ساعت 10:11
    آخرین ارسال: The Arrow
      سوال استفاده از API ها The Arrow 1 1,032 26-06-2015 ساعت 16:44
    آخرین ارسال: Ali Developer
    Note کتاب آموزش Parse کردن یک خبر خوان وردپرسی برای ویندوزفون The Arrow 0 1,565 23-04-2015 ساعت 09:24
    آخرین ارسال: The Arrow
    Note سوال ساخت تقویم فارسی در ویندوز 8.1 The Arrow 2 1,584 16-01-2015 ساعت 00:32
    آخرین ارسال: The Arrow
    Note میزان استفاده از رم با UserControl The Arrow 4 1,210 20-11-2014 ساعت 20:58
    آخرین ارسال: The Arrow
    Note دیتابیس SQLite در سی شارپ The Arrow 3 3,421 07-11-2014 ساعت 22:40
    آخرین ارسال: VBProgrammer
    Note FileAssociation در سی شارپ The Arrow 1 762 05-11-2014 ساعت 12:32
    آخرین ارسال: SOFTAFZAR
    Note آموزش کامل سی شارپ (ویدئو) xMAN 2 895 02-10-2014 ساعت 12:50
    آخرین ارسال: xMAN
    Note explorer سی شارپ cMan 1 639 30-08-2014 ساعت 12:07
    آخرین ارسال: SOFTAFZAR
    Note پیدا کردن متن در سی شارپ arfanz 7 1,329 27-08-2014 ساعت 01:10
    آخرین ارسال: The Arrow

    کاربرانِ درحال بازدید از این موضوع:   1 مهمان