I took her on a date things seemed so bright I knew I would not need my youporn tonight We go to her place and we fooled around We throw all our clothes to the ground
We begin as she turns out the lights I start but feel something so very extra tight I hear her cry and I see her frown I look at the condom it is all brown
Last night I stuck it in the wrong hole I'm so sorry from the bottom of my soul Cause I stuck it in the wrong hole
Try some preparation H it'll make you feel better In my defense those holes are so close together Oh baby baby don't feel defiled It's a common accident during doggy style
It was so dark I couldn't see so good I had no idea where I put my wood I want to make things better want to make it alright If you want you can put on a strap on and give it back to me all night ( I'd rather if she didn't)
Last night I stuck it in the wrong hole I'm so sorry from the bottom of my soul
I never ever want to make you feel hurting I guess that's why God made that hole not for inserting Tell me how you feel baby please don't pause Now I know how they feel in that HBO show OZ Maybe take some advit your pain it will fix From the way you are walking you can compete in the special olympics If this was Alabama we would be on trial That's how my mom took my temperature when I was a child
I've got a confession and I think you wont mind I kinda liked when you put it in my behind I don't know baby I'm no Sodomite Can't we just try it again tonight?
Alright!
Every night I stick it in the wrong hole It's so much fun and we don't need no birth control When we stick it in the wrong hole.
I will demonstrate 3 types of thread implementations in C#. They are ThreadPool.QueueUserWorkItem(), Thread, and Win32 thread.
1. ThreadPool.QueueUserWorkItem
class Program { static void Main(string[] args) { string message = "Hi"; ThreadPool.QueueUserWorkItem(DoSomething, message); }
//The method to be used in ThreadPool.QueueUserWorkItem, must has one parameter //with object static void DoSomething(object stateInfo) { Console.WriteLine("DoSomething: stateInfo={0}", stateInfo.ToString()); } }
2. Thread First, create a Daemon class. This class has a constructor with values. Besides, it has a delegate callback function.
public class Daemon { private string title; private int val;
private DelegateCallbackFunc callback;
public Daemon(string _title, int _val, DelegateCallbackFunc _callback) { title = _title; val = _val; callback = _callback; }
public void DoSomething() { try { Console.WriteLine("DoSomething: _title={0}, _val={1}", title, val); title = title + " Dude!"; val = val + 1;
//Declare a delegate callback method public delegate void DelegateCallbackFunc(string _title, int _val);
Second, create and start the thread.
class Program { static void Main(string[] args) { Daemon d = new Daemon("Hi", 0, new DelegateCallbackFunc(CallbackFunc)); Thread t = new Thread(new ThreadStart(d.DoSomething)); t.Start(); }
public static void CallbackFunc(string _title, int _val) { Console.WriteLine("CallbackFunc: _title={0}, _val={1}", _title, _val); } }
3. Use win32 thread First, create a class with extern declaration.
public class Win32 { [DllImport("kernel32.dll", SetLastError = true)] public static extern int CreateThread(ref SECURITY_ATTRIBUTES lpThreadAttributes, int dwStackSize, Delegate lpStartAddress, ref object lpParameter, int dwCreationFlags, ref int lpThreadId);
[StructLayout(LayoutKind.Sequential)] public struct SECURITY_ATTRIBUTES { public int nLength; public IntPtr lpSecurityDescriptor; public int bInheritHandle; } }
public delegate void ExecuteFunc();
Second, use this Win32 class in main program.
class Program { static void Main(string[] args) { Daemon d = new Daemon("Hi", 0, new DelegateCallbackFunc(CallbackFunc)); ExecuteFunc ef = new ExecuteFunc(d.DoSomething);
Win32.SECURITY_ATTRIBUTES sa = new Win32.SECURITY_ATTRIBUTES(); object lpParameter = new object(); int lpThreadId = 0; Win32.CreateThread(ref sa, 0, ef, ref lpParameter, 0, ref lpThreadId); } }