|
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using rsi.Controls.iToolTip;
using Test.webservice;
///
/// WRITTEN BY FLORIAN RAPPL, 2011
/// CODE IS FREE TO USE -- CPOL [ Code Project Open License ]
///
namespace Test
{
public class SampleDataProvider : IToolTipDataProvider
{
#region members
Timer ws;
Control userState;
string request;
Random ran;
#endregion
#region ctor
public SampleDataProvider()
{
ran = new Random();
ws = new Timer();
ws.Interval = 2000;
ws.Tick += new EventHandler(ws_Tick);
}
#endregion
#region IToolTipDataProvider Member
public object RequestData(string request)
{
System.Threading.Thread.Sleep(2000);
if (ran.NextDouble() < 0.1)
throw new Exception("A sample exception...");
return request;
}
public void RequestDataAsync(string request, Control userState)
{
this.userState = userState;
this.request = request;
ws.Start();
}
public void CancelDataAsync(Control userState)
{
ws.Stop();
}
public event ToolTipDataEventHandler RequestDataHandled;
#endregion
#region Methods
void ws_Tick(object sender, EventArgs e)
{
Exception ex = null;
if (ran.NextDouble() < 0.1)
ex = new Exception("A sample (async) exception...");
if (RequestDataHandled != null)
RequestDataHandled(this, new ToolTipDataEventArgs(request, userState, ex));
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Florian lives in Munich, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics.
During his studies he worked as an IT consultant for various companies. After graduating with a PhD in theoretical particle Physics he is working as a senior technical consultant in the field of home automation and IoT.
Florian has been giving lectures in C#, HTML5 with CSS3 and JavaScript, software design, and other topics. He is regularly giving talks at user groups, conferences, and companies. He is actively contributing to open-source projects. Florian is the maintainer of AngleSharp, a completely managed browser engine.