खोज…
वाक्य - विन्यास
-
myTimer.Interval
- कितनी बार "टिक" ईवेंट को (मिलीसेकंड में) सेट करता है -
myTimer.Enabled
- बूलियन मान जो सक्षम / अक्षम होने के लिए टाइमर सेट करता है -
myTimer.Start()
- टाइमर शुरू करता है। -
myTimer.Stop()
- टाइमर को रोकता है।
टिप्पणियों
यदि विजुअल स्टूडियो का उपयोग किया जाता है, तो टाइमर को आपके टूलबॉक्स से सीधे नियंत्रण के रूप में जोड़ा जा सकता है।
मल्टीथ्रेडर्स टाइमर
System.Threading.Timer
- सबसे सरल मल्टीथ्रेडेड टाइमर। दो विधियाँ और एक निर्माणकर्ता शामिल है।
उदाहरण: एक टाइमर डेटाविराइट विधि को कॉल करता है, जो "मल्टीथ्रेड निष्पादित ..." लिखता है, पांच सेकंड बीतने के बाद और उसके बाद हर सेकंड तब तक जब तक उपयोगकर्ता दर्ज नहीं करता है:
using System;
using System.Threading;
class Program
{
static void Main()
{
// First interval = 5000ms; subsequent intervals = 1000ms
Timer timer = new Timer (DataWrite, "multithread executed...", 5000, 1000);
Console.ReadLine();
timer.Dispose(); // This both stops the timer and cleans up.
}
static void DataWrite (object data)
{
// This runs on a pooled thread
Console.WriteLine (data); // Writes "multithread executed..."
}
}
नोट: मल्टीथ्रेडेड टाइमर निपटाने के लिए एक अलग सेक्शन पोस्ट करेगा।
Change
- इस पद्धति को तब बुलाया जा सकता है जब आप टाइमर अंतराल को बदलना चाहेंगे।
Timeout.Infinite
- अगर आप बस एक बार फायर करना चाहते हैं। इसे निर्माता के अंतिम तर्क में निर्दिष्ट करें।
System.Timers
- .NET फ्रेमवर्क द्वारा प्रदान किया गया एक और टाइमर वर्ग। यह System.Threading.Timer
लपेटता है।
विशेषताएं:
-
IComponent
- इसे विजुअल स्टूडियो के डिज़ाइनर घटक ट्रे मेंIComponent
अनुमति देता है -
Change
तरीके के बजायInterval
संपत्ति - एक कॉलबैक
delegate
बजायElapsed
event
- टाइमर शुरू करने और रोकने के लिए
Enabled
संपत्ति (default value = false
) - यदि आप
Enabled
संपत्ति (बिंदु से ऊपर) से भ्रमित होते हैं, तोStart
औरStop
- आवर्ती घटना के संकेत के लिए
AutoReset
- (default value = true
) - WPF तत्वों और Windows प्रपत्र नियंत्रणों पर सुरक्षित रूप से कॉल करने के तरीकों के लिए
Invoke
औरBeginInvoke
विधियों के साथSynchronizingObject
गुण
उपरोक्त सभी विशेषताओं का प्रतिनिधित्व करने वाला उदाहरण:
using System;
using System.Timers; // Timers namespace rather than Threading
class SystemTimer
{
static void Main()
{
Timer timer = new Timer(); // Doesn't require any args
timer.Interval = 500;
timer.Elapsed += timer_Elapsed; // Uses an event instead of a delegate
timer.Start(); // Start the timer
Console.ReadLine();
timer.Stop(); // Stop the timer
Console.ReadLine();
timer.Start(); // Restart the timer
Console.ReadLine();
timer.Dispose(); // Permanently stop the timer
}
static void timer_Elapsed(object sender, EventArgs e)
{
Console.WriteLine ("Tick");
}
}
Multithreaded timers
- थ्रेड पूल का उपयोग करने के लिए कई टाइमर की सेवा के लिए कुछ धागे की अनुमति देते हैं। इसका मतलब है कि कॉलबैक विधि या Elapsed
ईवेंट हर बार अलग थ्रेड पर ट्रिगर हो सकता है जिसे यह कहा जाता है।
Elapsed
- यह ईवेंट हमेशा समय पर फायर करता है - चाहे पिछले Elapsed
ईवेंट को अंजाम देना हो। इस वजह से, कॉलबैक या ईवेंट हैंडलर को थ्रेड-सुरक्षित होना चाहिए। मल्टीथ्रेडेड टाइमर की सटीकता ओएस पर निर्भर करती है, और आमतौर पर 10-20 एमएस में होती है।
interop
- जब कभी आपको अधिक सटीकता की आवश्यकता होती है तो इसका उपयोग करें और विंडोज मल्टीमीडिया टाइमर को कॉल करें। इसकी सटीकता 1 ms तक है और इसे winmm.dll
में परिभाषित किया गया है।
timeBeginPeriod
- OS को सूचित करने के लिए इसे पहले कॉल करें जिसे आपको उच्च समय सटीकता की आवश्यकता है
timeSetEvent
- के बाद इस फोन timeBeginPeriod
एक मल्टीमीडिया टाइमर शुरू करने के लिए।
timeKillEvent
- जब आप काम पूरा कर लें, तो यह टाइमर बंद कर देता है
timeEndPeriod
- OS को सूचित करने के लिए यह कॉल करें कि अब आपको उच्च समय सटीकता की आवश्यकता नहीं है।
आप इंटरनेट पर संपूर्ण उदाहरण पा सकते हैं जो कि मल्टीमीडिया टाइमर का उपयोग करके कीवर्ड dllimport
winmm.dll
timesetevent
खोज करते हैं।
टाइमर का एक उदाहरण बनाना
टाइमर का उपयोग समय के विशिष्ट अंतराल पर कार्य करने के लिए किया जाता है (Do X every Y seconds) नीचे एक नया उदाहरण एक टाइमर बनाने का है।
नोट : यह WinForms का उपयोग करके टाइमर पर लागू होता है। यदि WPF का उपयोग कर रहे हैं, तो आप DispatcherTimer
में देखना चाहते हैं
using System.Windows.Forms; //Timers use the Windows.Forms namespace
public partial class Form1 : Form
{
Timer myTimer = new Timer(); //create an instance of Timer named myTimer
public Form1()
{
InitializeComponent();
}
}
"टिक" इवेंट हैंडलर को एक टाइमर को सौंपना
एक टाइमर में किए गए सभी कार्यों को "टिक" घटना में संभाला जाता है।
public partial class Form1 : Form
{
Timer myTimer = new Timer();
public Form1()
{
InitializeComponent();
myTimer.Tick += myTimer_Tick; //assign the event handler named "myTimer_Tick"
}
private void myTimer_Tick(object sender, EventArgs e)
{
// Perform your actions here.
}
}
उदाहरण: एक साधारण उलटी गिनती करने के लिए टाइमर का उपयोग करना।
public partial class Form1 : Form
{
Timer myTimer = new Timer();
int timeLeft = 10;
public Form1()
{
InitializeComponent();
//set properties for the Timer
myTimer.Interval = 1000;
myTimer.Enabled = true;
//Set the event handler for the timer, named "myTimer_Tick"
myTimer.Tick += myTimer_Tick;
//Start the timer as soon as the form is loaded
myTimer.Start();
//Show the time set in the "timeLeft" variable
lblCountDown.Text = timeLeft.ToString();
}
private void myTimer_Tick(object sender, EventArgs e)
{
//perform these actions at the interval set in the properties.
lblCountDown.Text = timeLeft.ToString();
timeLeft -= 1;
if (timeLeft < 0)
{
myTimer.Stop();
}
}
}
का परिणाम...
और इसी तरह...