[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.sdk

First argument to ElapsedEventHandler ??

Fred Truter

9/24/2002 7:59:00 PM

VGhlIC5ORVQgZG9jdW1lbnRhdGlvbiBzYXlzIHlvdSBtdXN0IGRlY2xhcmUgYSBoYW5kbGVyIG9m
IHRoZSBmb3JtDQoNCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgT25UaW1lcihvYmplY3Qgc291cmNl
LCBFbGFwc2VkRXZlbnRBcmdzIGUpDQoNCkhvd2V2ZXIsIGl0IGRvZXNuJ3Qgc2F5IHdoYXQgInNv
dXJjZSIgaXMuIA0KDQoxKSBJcyBpdCB0aGUgVGltZXIgb2JqZWN0IHdoaWNoIGZpcmVzIHRoZSBl
dmVudD8NCg0KMikgT3IgY2FuIGl0IGJlIHRoZSBvYmplY3Qgb2Ygd2hpY2ggT25UaW1lciBpcyBh
IG1lbWJlcj8gVGhpcyB3b3VsZCBiZSB2ZXJ5IHVzZWZ1bCBzaW5jZSBzdGF0aWMgbWVtYmVyIGZ1
bmN0aW9ucyBoYXZlIG5vIHJlZmVyZW5jZSB0byBhbnkgcGFydGljdWxhciBpbnN0YW5jZSBvZiB0
aGUgY2xhc3MgdG8gd2hpY2ggdGhleSBiZWxvbmcuIE9uVGltZXIgaXMgb2YgY291cnNlIHN0YXRp
Yy4NCg0KMykgT3IgaXMgaXQgc29tZSBvdGhlciB1c2VsZXNzIFN5c3RlbSBvYmplY3Q/DQoNCkFs
bCB0aGUgc2FtcGxlcyBzaW1wbHkgc2hvdyB0aGUgT25UaW1lciBoYW5kbGVyIHdyaXRpbmcgc29t
ZXRoaW5nIHRvIHRoZSBjb25zb2xlLCB3aGljaCBpcyBmaW5lIGlmIHlvdSBnZXQgYSBraWNrIG91
dCBvZiB3cml0aW5nIEhlbGxvIFdvcmxkIGFwcGxpY2F0aW9ucy4NCg0KSSBhc3N1bWVkIHRoYXQg
KDIpIGFib3ZlIGlzIHRoZSBtb3N0IHByb2JhYmxlLCBzbyBJIGNhc3QgdGhlIHNvdXJjZSBhcmd1
bWVudCB0byB0aGUgY2xhc3MgdHlwZSBhbmQgdHJpZWQgdG8gYWNjZXNzIG90aGVyIG1lbWJlcnMs
IGJ1dCB0aGlzIHJlc3VsdHMgaW4gcmFuZG9tIGNyYXNoZXMuIElmIEkgbmV2ZXIgc3RhcnQgdGhl
IHRpbWVyLCB0aGVuIHRoZSBwcm9ncmFtIG5ldmVyIGNyYXNoZXMuICBJZiBJIHN0YXJ0IHRoZSB0
aW1lciwgYnV0IHNpbXBseSB3cml0ZSB0byB0aGUgY29uc29sZSwgaXRzIGFsc28gZmluZS4gQnV0
IEkgd2FudCBtb3JlLi4uDQoNClBsZWFzZSBoZWxwLg==

4 Answers

Fred Truter

9/25/2002 10:41:00 AM

0

T2theSwgdGhlIGRlYnVnZ2VyIHRlbGxzIG1lIHRoYXQgdGhlIGZpcnN0IGFyZ3VtZW50ICJzb3Vy
Y2UiIGlzIGEgU3lzdGVtLlRpbWVycy5UaW1lciBvYmplY3QuIE5vdCB2ZXJ5IHVzZWZ1bC4gVGhl
IGV2ZW50IGhhbmRsZXIgbm93IGtub3dzIHRoYXQgc29tZSB0aW1lciBzb21ld2hlcmUgaGFzIGVs
YXBzZWQuIE5vdCB3aHksIHdobywgd2hhdCwgZXRjLi4uICBBbGwgaXQgY2FuIGRvIHdpdGggdGhl
IHNvdXJjZSBpcyB0byBTdGFydCAvIFN0b3AgdGhlIHRpbWVyLCBlbmFibGUgLyBkaXNhYmxlIG9y
IGNoYW5nZSB0aGUgZnJlcXVlbmN5LiBDb21lIG9uLCB3aHkgaXMgdGhpcyBzbyBkaWZmaWN1bHQ/
Pz8NCg0KSW4gdGhlIHByZS0uTkVUIGRheXMgeW91IGNvdWxkIHBhc3Mgb24gYW4gTFBBUkFNIHdo
ZW4geW91IGNyZWF0ZWQgYSB0aW1lciwgYW5kIHlvdXIgaGFuZGxlciB3b3VsZCByZWNlaXZlIHRo
aXMuIFR5cGljYWxseSB5b3Ugd291bGQgcGFzcyBvbiB0aGUgYWRkcmVzcyBpbiBtZW1vcnkgb2Yg
YSB1c2VyIG9iamVjdCBpbnN0YW5jZSwgY2FzdCB0byBMUEFSQU0uIEluIHRoZSBoYW5kbGVyIHlv
dSB3b3VsZCBjYXN0IGl0IGJhY2sgdG8gYSBwb2ludGVyIHRvIGEgdXNlciBvYmplY3QsIGFuZCB5
b3UgY291bGQgZG8gc29tZXRoaW5nIHVzZWZ1bCB3aXRoIHRoYXQgb2JqZWN0IGluc3RhbmNlLg0K
DQpTdXJlbHkgdGhlIGRlc2lnbmVycyBvZiAuTkVUIG11c3QgaGF2ZSB0aG91Z2h0IG9mIHRoaXMu
IA0KDQpJIHRyaWVkIGRlcml2aW5nIG15IG9iamVjdCBmcm9tIFN5c3RlbS5UaW1lcnMuVGltZXIs
IGJ1dCB0aGlzIGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgIlN5c3RlbS5UaW1lcnMuVGltZXIgaXMg
bm90IGFuIGludGVyZmFjZSIuIEFtIEkgbWlzc2luZyBzb21ldGhpbmcgaGVyZT8NCg0KQW55IGhl
bHAgd291bGQgYmUgbXVjaCBhcHByZWNpYXRlZC4NCg0KIkZyZWQgVHJ1dGVyIiA8ZnJlZEBlLWJ5
dGVzYWZlLmNvbT4gd3JvdGUgaW4gbWVzc2FnZSBuZXdzOmVUNFlTUSRZQ0hBLjQyNjRAdGttc2Z0
bmdwMDguLi4NCj4gVGhlIC5ORVQgZG9jdW1lbnRhdGlvbiBzYXlzIHlvdSBtdXN0IGRlY2xhcmUg
YSBoYW5kbGVyIG9mIHRoZSBmb3JtDQo+IA0KPiAgICAgcHVibGljIHN0YXRpYyB2b2lkIE9uVGlt
ZXIob2JqZWN0IHNvdXJjZSwgRWxhcHNlZEV2ZW50QXJncyBlKQ0KPiANCj4gSG93ZXZlciwgaXQg
ZG9lc24ndCBzYXkgd2hhdCAic291cmNlIiBpcy4gDQo+IA0KPiAxKSBJcyBpdCB0aGUgVGltZXIg
b2JqZWN0IHdoaWNoIGZpcmVzIHRoZSBldmVudD8NCj4gDQo+IDIpIE9yIGNhbiBpdCBiZSB0aGUg
b2JqZWN0IG9mIHdoaWNoIE9uVGltZXIgaXMgYSBtZW1iZXI/IFRoaXMgd291bGQgYmUgdmVyeSB1
c2VmdWwgc2luY2Ugc3RhdGljIG1lbWJlciBmdW5jdGlvbnMgaGF2ZSBubyByZWZlcmVuY2UgdG8g
YW55IHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHRvIHdoaWNoIHRoZXkgYmVsb25n
LiBPblRpbWVyIGlzIG9mIGNvdXJzZSBzdGF0aWMuDQo+IA0KPiAzKSBPciBpcyBpdCBzb21lIG90
aGVyIHVzZWxlc3MgU3lzdGVtIG9iamVjdD8NCj4gDQo+IEFsbCB0aGUgc2FtcGxlcyBzaW1wbHkg
c2hvdyB0aGUgT25UaW1lciBoYW5kbGVyIHdyaXRpbmcgc29tZXRoaW5nIHRvIHRoZSBjb25zb2xl
LCB3aGljaCBpcyBmaW5lIGlmIHlvdSBnZXQgYSBraWNrIG91dCBvZiB3cml0aW5nIEhlbGxvIFdv
cmxkIGFwcGxpY2F0aW9ucy4NCj4gDQo+IEkgYXNzdW1lZCB0aGF0ICgyKSBhYm92ZSBpcyB0aGUg
bW9zdCBwcm9iYWJsZSwgc28gSSBjYXN0IHRoZSBzb3VyY2UgYXJndW1lbnQgdG8gdGhlIGNsYXNz
IHR5cGUgYW5kIHRyaWVkIHRvIGFjY2VzcyBvdGhlciBtZW1iZXJzLCBidXQgdGhpcyByZXN1bHRz
IGluIHJhbmRvbSBjcmFzaGVzLiBJZiBJIG5ldmVyIHN0YXJ0IHRoZSB0aW1lciwgdGhlbiB0aGUg
cHJvZ3JhbSBuZXZlciBjcmFzaGVzLiAgSWYgSSBzdGFydCB0aGUgdGltZXIsIGJ1dCBzaW1wbHkg
d3JpdGUgdG8gdGhlIGNvbnNvbGUsIGl0cyBhbHNvIGZpbmUuIEJ1dCBJIHdhbnQgbW9yZS4uLg0K
PiANCj4gUGxlYXNlIGhlbHAu

(Felix Wu [MS])

9/26/2002 8:10:00 AM

0

Hi Fred,

>1) Is it the Timer object which fires the event?

Yes, the "source" refers to the source of the event. In this case, it is
the Timer object which fires the event.

>2) Or can it be the object of which OnTimer is a member? This would be
very useful since static member functions have no reference to any
particular instance of the class to which they belong. OnTimer is of course
static.

OnTimer (OnElapsed) method is not a static method, instead it is a
protected member function in the Timer class. This function fires the
Elapsed event via delegate.

You mentioned that when you cast the source argument to the class type and
tried to access other members, you would get random crashes. Could you post
the the code snippet here?

For more information about Event, you can refer to the following documents:

Handling and Raising Events
http://msdn.microsoft.com/library/en-us/cpguide/html/cpcon...

Hope this helps.

Regards,

Felix Wu
=============
This posting is provided "AS IS" with no warranties, and confers no rights.


--------------------
>From: "Fred Truter" <fred@e-bytesafe.com>
>Subject: First argument to ElapsedEventHandler ??
>Date: Tue, 24 Sep 2002 18:59:47 +0100
>Lines: 19
>MIME-Version: 1.0
>Content-Type: text/plain;
> charset="Windows-1252"
>Content-Transfer-Encoding: base64
>X-Priority: 3
>X-MSMail-Priority: Normal
>X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
>X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
>Message-ID: <eT4YSQ$YCHA.4264@tkmsftngp08>
>Newsgroups: microsoft.public.dotnet.framework.sdk
>NNTP-Posting-Host: 80.6.36.51
>Path: cpmsftngxa09!cpmsftngxa06!tkmsftngp01!tkmsftngp08
>Xref: cpmsftngxa09 microsoft.public.dotnet.framework.sdk:4549
>X-Tomcat-NG: microsoft.public.dotnet.framework.sdk
>
>The .NET documentation says you must declare a handler of the form
>
> public static void OnTimer(object source, ElapsedEventArgs e)
>
>However, it doesn't say what "source" is.
>
>1) Is it the Timer object which fires the event?
>
>2) Or can it be the object of which OnTimer is a member? This would be
very useful since static member functions have no reference to any
particular instance of the class to which they belong. OnTimer is of course
static.
>
>3) Or is it some other useless System object?
>
>All the samples simply show the OnTimer handler writing something to the
console, which is fine if you get a kick out of writing Hello World
applications.
>
>I assumed that (2) above is the most probable, so I cast the source
argument to the class type and tried to access other members, but this
results in random crashes. If I never start the timer, then the program
never crashes. If I start the timer, but simply write to the console, its
also fine. But I want more...
>
>Please help.

MikeB

9/27/2002 4:42:00 PM

0

"Fred Truter" <fred@e-bytesafe.com> wrote in message
news:eT4YSQ$YCHA.4264@tkmsftngp08...
> The .NET documentation says you must declare a handler of the form
>
> public static void OnTimer(object source, ElapsedEventArgs e)
>
> However, it doesn't say what "source" is.
>
> 1) Is it the Timer object which fires the event?
>
> 2) Or can it be the object of which OnTimer is a member? This would be
very useful since static member functions have no reference to any
particular instance of the class to which they belong. OnTimer is of course
static.
>
> 3) Or is it some other useless System object?
>
> All the samples simply show the OnTimer handler writing something to the
console, which is fine if you get a kick out of writing Hello World
applications.
>
> I assumed that (2) above is the most probable, so I cast the source
argument to the class type and tried to access other members, but this
results in random crashes. If I never start the timer, then the program
never crashes. If I start the timer, but simply write to the console, its
also fine. But I want more...
>
> Please help.

You're right - the System.Timers.Timer doesn't seem to provide a way to pass
context to the event that gets called when a timer has fired. All you seem
to be able to get is the amount of time that has elapsed which caused the
timer to fire the event.

You should look at the System.Threading.Timer class, which does allow you to
pass in an arbitrary object that the timer callback can use to get context
information.

--
MikeB





Fred Truter

10/8/2002 5:01:00 PM

0

VGhhbmtzIE1pa2UhDQoNCiJNaWtlQiIgPG1haWxib3guZ29vZ2xlQG1haWxudWxsLmNvbT4gd3Jv
dGUgaW4gbWVzc2FnZSBuZXdzOmVlMmpjcmpaQ0hBLjE0OTZAdGttc2Z0bmdwMDkuLi4NCj4gIkZy
ZWQgVHJ1dGVyIiA8ZnJlZEBlLWJ5dGVzYWZlLmNvbT4gd3JvdGUgaW4gbWVzc2FnZQ0KPiBuZXdz
OmVUNFlTUSRZQ0hBLjQyNjRAdGttc2Z0bmdwMDguLi4NCj4gPiBUaGUgLk5FVCBkb2N1bWVudGF0
aW9uIHNheXMgeW91IG11c3QgZGVjbGFyZSBhIGhhbmRsZXIgb2YgdGhlIGZvcm0NCj4gPg0KPiA+
ICAgICBwdWJsaWMgc3RhdGljIHZvaWQgT25UaW1lcihvYmplY3Qgc291cmNlLCBFbGFwc2VkRXZl
bnRBcmdzIGUpDQo+ID4NCj4gPiBIb3dldmVyLCBpdCBkb2Vzbid0IHNheSB3aGF0ICJzb3VyY2Ui
IGlzLg0KPiA+DQo+ID4gMSkgSXMgaXQgdGhlIFRpbWVyIG9iamVjdCB3aGljaCBmaXJlcyB0aGUg
ZXZlbnQ/DQo+ID4NCj4gPiAyKSBPciBjYW4gaXQgYmUgdGhlIG9iamVjdCBvZiB3aGljaCBPblRp
bWVyIGlzIGEgbWVtYmVyPyBUaGlzIHdvdWxkIGJlDQo+IHZlcnkgdXNlZnVsIHNpbmNlIHN0YXRp
YyBtZW1iZXIgZnVuY3Rpb25zIGhhdmUgbm8gcmVmZXJlbmNlIHRvIGFueQ0KPiBwYXJ0aWN1bGFy
IGluc3RhbmNlIG9mIHRoZSBjbGFzcyB0byB3aGljaCB0aGV5IGJlbG9uZy4gT25UaW1lciBpcyBv
ZiBjb3Vyc2UNCj4gc3RhdGljLg0KPiA+DQo+ID4gMykgT3IgaXMgaXQgc29tZSBvdGhlciB1c2Vs
ZXNzIFN5c3RlbSBvYmplY3Q/DQo+ID4NCj4gPiBBbGwgdGhlIHNhbXBsZXMgc2ltcGx5IHNob3cg
dGhlIE9uVGltZXIgaGFuZGxlciB3cml0aW5nIHNvbWV0aGluZyB0byB0aGUNCj4gY29uc29sZSwg
d2hpY2ggaXMgZmluZSBpZiB5b3UgZ2V0IGEga2ljayBvdXQgb2Ygd3JpdGluZyBIZWxsbyBXb3Js
ZA0KPiBhcHBsaWNhdGlvbnMuDQo+ID4NCj4gPiBJIGFzc3VtZWQgdGhhdCAoMikgYWJvdmUgaXMg
dGhlIG1vc3QgcHJvYmFibGUsIHNvIEkgY2FzdCB0aGUgc291cmNlDQo+IGFyZ3VtZW50IHRvIHRo
ZSBjbGFzcyB0eXBlIGFuZCB0cmllZCB0byBhY2Nlc3Mgb3RoZXIgbWVtYmVycywgYnV0IHRoaXMN
Cj4gcmVzdWx0cyBpbiByYW5kb20gY3Jhc2hlcy4gSWYgSSBuZXZlciBzdGFydCB0aGUgdGltZXIs
IHRoZW4gdGhlIHByb2dyYW0NCj4gbmV2ZXIgY3Jhc2hlcy4gIElmIEkgc3RhcnQgdGhlIHRpbWVy
LCBidXQgc2ltcGx5IHdyaXRlIHRvIHRoZSBjb25zb2xlLCBpdHMNCj4gYWxzbyBmaW5lLiBCdXQg
SSB3YW50IG1vcmUuLi4NCj4gPg0KPiA+IFBsZWFzZSBoZWxwLg0KPiANCj4gWW91J3JlIHJpZ2h0
IC0gdGhlIFN5c3RlbS5UaW1lcnMuVGltZXIgZG9lc24ndCBzZWVtIHRvIHByb3ZpZGUgYSB3YXkg
dG8gcGFzcw0KPiBjb250ZXh0IHRvIHRoZSBldmVudCB0aGF0IGdldHMgY2FsbGVkIHdoZW4gYSB0
aW1lciBoYXMgZmlyZWQuICBBbGwgeW91IHNlZW0NCj4gdG8gYmUgYWJsZSB0byBnZXQgaXMgdGhl
IGFtb3VudCBvZiB0aW1lIHRoYXQgaGFzIGVsYXBzZWQgd2hpY2ggY2F1c2VkIHRoZQ0KPiB0aW1l
ciB0byBmaXJlIHRoZSBldmVudC4NCj4gDQo+IFlvdSBzaG91bGQgbG9vayBhdCB0aGUgU3lzdGVt
LlRocmVhZGluZy5UaW1lciBjbGFzcywgd2hpY2ggZG9lcyBhbGxvdyB5b3UgdG8NCj4gcGFzcyBp
biBhbiBhcmJpdHJhcnkgb2JqZWN0IHRoYXQgdGhlIHRpbWVyIGNhbGxiYWNrIGNhbiB1c2UgdG8g
Z2V0IGNvbnRleHQNCj4gaW5mb3JtYXRpb24uDQo+IA0KPiAtLQ0KPiBNaWtlQg0KPiANCj4gDQo+
IA0KPiANCj4g