Async Wandering Part 14 — Async with Fibers reimplemented in .NET Core

This is the fourteenth part of the Async Wandering series. For your convenience you can find other parts in the table of contents in Part 1 – Why creating Form from WinForms in unit tests breaks async? We already implemented Loom in C# with Fibers. This time, a piece of code which uses P/Invoke (instead … Continue reading Async Wandering Part 14 — Async with Fibers reimplemented in .NET Core

.NET Inside Out Part 29 – Terminating some existing thread with jumps

This is the twentieth ninth part of the .NET Inside Out series. For your convenience you can find other parts in the table of contents in Part 1 – Virtual and non-virtual calls in C# Last time we discussed ways to terminate a thread. We mentioned a method based on unwinding the stack and preserving … Continue reading .NET Inside Out Part 29 – Terminating some existing thread with jumps

.NET Inside Out Part 27 – Rerouting a running thread to some other method

This is the twentieth seventh part of the .NET Inside Out series. For your convenience you can find other parts in the table of contents in Part 1 – Virtual and non-virtual calls in C# Today we are going to grab an existing running thread and make it run some other code. Let’s take this: … Continue reading .NET Inside Out Part 27 – Rerouting a running thread to some other method

Custom memory allocation in C# Part 18 — Hijacking methods on .NET 5 with modifying machine code

This is the eighteenth part of the Custom memory allocation series. For your convenience you can find other parts in the table of contents in Part 1 — Allocating object on a stack Today we are going to see a rewritten way of hijacking method with machine code. It works in Windows and Linux, for … Continue reading Custom memory allocation in C# Part 18 — Hijacking methods on .NET 5 with modifying machine code