Skip to content

Instantly share code, notes, and snippets.

View peteraritchie's full-sized avatar
😖

Peter Ritchie peteraritchie

😖
View GitHub Profile
@peteraritchie
peteraritchie / sequentialasynchronous.cs
Created April 30, 2012 12:00
sequential asynchronous
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://contoso.com");
req.BeginGetResponse(result =>
{
var response = req.EndGetResponse(result);
req = (HttpWebRequest)WebRequest.Create("http://example.com");
req.BeginGetResponse(result2 =>
{
response = req.EndGetResponse(result2);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com/en/us/default.aspx");
HttpWebResponse webResponse = (HttpWebResponse)await webRequest.GetResponseAsync();
Trace.WriteLine(webResponse.StatusCode);
webRequest = (HttpWebRequest)WebRequest.Create("http://google.ca");
webResponse = (HttpWebResponse)await webRequest.GetResponseAsync();
Trace.WriteLine(webResponse.StatusCode);
private void updateServerStatus()
{
foreach (ServerItem server in ServerItems)
{
var capturedServer = server;
server.ServerImage = "/Images/appbar.questionmark.rest.png";
string url = server.ServerAddress;
if (url.StartsWith("http://") || url.StartsWith("https://")) { }
else
@peteraritchie
peteraritchie / WaitOneAsync
Created June 28, 2012 16:21
WaitOneAsync
public static Task WaitOneAsync(this WaitHandle waitHandle)
{
if (waitHandle == null) throw new ArgumentNullException("waitHandle");
var tcs = new TaskCompletionSource<bool>();
var rwh = ThreadPool.RegisterWaitForSingleObject(waitHandle,
delegate { tcs.TrySetResult(true); }, null, -1, true);
var t = tcs.Task;
t.ContinueWith(_ => rwh.Unregister(null));
return t;
@peteraritchie
peteraritchie / TPLThreads.cs
Created September 6, 2012 21:39
show TPL using more threads than CPUs
int threadCount = Environment.ProcessorCount + 5;
Parallel.ForEach(Enumerable.Range(0, threadCount),
new ParallelOptions { MaxDegreeOfParallelism = -1 }, item =>
{
Interlocked.Increment(ref level);
Trace.WriteLine(string.Format("in {0} {1}", item,
level));
Stopwatch sw = Stopwatch.StartNew();
while ((sw.Elapsed.TotalSeconds < TimeSpan.FromSeconds(Environment.ProcessorCount * 25).TotalSeconds))
{
@peteraritchie
peteraritchie / ToSelectList.cs
Created October 11, 2012 14:09
convert enum value to SelectList of all enum's values
public static SelectList ToSelectList<T>(this T value) where T : struct
{
if(!value.GetType().IsEnum) throw new ArgumentException("bad arg", "value");
var c = Enum.GetValues(value.GetType());
return new SelectList(c);
}
@peteraritchie
peteraritchie / beginsend.cs
Created October 12, 2012 21:15
sill socket beginsend example
socket.BeginSend(memoryStream.GetBuffer(), 0,
(int) memoryStream.Length - 5, 0,
sendAr =>
{
socket.EndSend(sendAr);
socket.BeginSend(
memoryStream.GetBuffer(),
(int) memoryStream.Length - 5,
5, 0,
sendAr2 =>
@peteraritchie
peteraritchie / eps.md
Created October 22, 2012 21:20
extended personal statement

#Peter Ritchie# ##President, Peter Ritchie Inc. Software Consulting Co.## Technologist, author, mentor, speaker

[email protected]

(613) 277 4484

  • 22 years software development and mentoring experience.
  • Recognized leader in .NET, particularly C#
  • Author of Refactoring with Visual Studio 2010 and Visual Studio 2010 Best Practices, Packt Publishing.
synchronizeInvoke.BeginInvoke(() => DoStuff(x, y));
synchronizeInvoke.BeginInvoke((x1, y1) => DoStuff(x1, y1), x, y);
synchronizeInvoke.BeginInvoke(DoStuff, x, y);
@peteraritchie
peteraritchie / stuff.cs
Created November 6, 2012 18:29
crazy dynamic code
private static bool IsListInternal(object obj)
{
return false;
}
private static bool IsListInternal<T>(List<T> obj)
{
return true;
}