Many years ago I worked at a company that sold a FTP-like application for mainframe datacenters. It ran on all popular versions of *nix and Windows. The Windows app was the slowest and used the most CPU. I refactored the Windows app to use async IO, overlapped IO and IO competition ports. After the refactor, the Windows app became the best performing (could completely saturated the network), and had the lowest CPU usage (almost undetectable). I was shocked. It was amazing. These technologies are the most amazing and most underappreciated APIs in Windows.
40:56 Elevator pitch Async await allow you to have sequential programming model, for writing code that performs I/O operations without blocking any threads, thereby allowing you to create more responsive and scalable software.
It really bothers me when tech talks are uploaded at anything less than 720p at a minimum. This is half as many pixels. Does not look great on my 4k monitor. 😣 Even so, content-wise, excellent. Thanks for posting!
A DLL is required to have a function called DllMain, which takes a DWORD parameter called dwReason (u can call it whatever u want).. when a dll is loaded (Loadlibrary), the Dllmain function is called first with dwReason == DLL_PROCESS_ATTACH. when unloaded (edit: with FreeLibrary), it's called with DLL_PROCESS_DETACH. the dll author will put some init code in the process_attach case and cleanup code in the detach case.
@@HandE2Go Thank you for the explanation! :) It seems that the notification mentioned at 13:30 happens after the DLL is already loaded. So, is there another function for handling notifications? Edit: it seems the notification handlers are called DLL_THREAD_ATTACH and DLL_THREAD_DETACH
Many years ago I worked at a company that sold a FTP-like application for mainframe datacenters. It ran on all popular versions of *nix and Windows. The Windows app was the slowest and used the most CPU. I refactored the Windows app to use async IO, overlapped IO and IO competition ports. After the refactor, the Windows app became the best performing (could completely saturated the network), and had the lowest CPU usage (almost undetectable). I was shocked. It was amazing. These technologies are the most amazing and most underappreciated APIs in Windows.
40:56 Elevator pitch
Async await allow you to have sequential programming model, for writing code that performs I/O operations without blocking any threads, thereby allowing you to create more responsive and scalable software.
This was fantastic explanation!!!
It really bothers me when tech talks are uploaded at anything less than 720p at a minimum. This is half as many pixels. Does not look great on my 4k monitor. 😣
Even so, content-wise, excellent. Thanks for posting!
This videos explained the Async/Await in details
Excellent!
Excellent
13:30 What does it mean for a DLL (which is a file) to be notified?
A DLL is required to have a function called DllMain, which takes a DWORD parameter called dwReason (u can call it whatever u want).. when a dll is loaded (Loadlibrary), the Dllmain function is called first with dwReason == DLL_PROCESS_ATTACH. when unloaded (edit: with FreeLibrary), it's called with DLL_PROCESS_DETACH. the dll author will put some init code in the process_attach case and cleanup code in the detach case.
@@HandE2Go Thank you for the explanation! :)
It seems that the notification mentioned at 13:30 happens after the DLL is already loaded. So, is there another function for handling notifications? Edit: it seems the notification handlers are called DLL_THREAD_ATTACH and DLL_THREAD_DETACH
Really awesome... Must watch for programmer
I stand corrected, I was going to recommend it to my gardener friend. Thank you.
Brilliant.
Great!
Brillant
Threads are only atrocious crap on Windows. On every other OS, creating a thread is nearly zero cost.