Skip to content

Instantly share code, notes, and snippets.

var MODULES = new ActiveXObject("Scripting.Dictionary");
var n; // undefined
MODULES.Add(n, "Test value");
var keys = new VBArray(MODULES.Keys()).toArray();
WScript.Echo("Array length: " + keys.length);
WScript.Echo("Key at index 0: " + (keys[0] === undefined ? "undefined" : keys[0]));
WScript.Echo("Is index 0 enumerable? " + (keys.hasOwnProperty(0) ? "Yes" : "No"));
#include <iostream>
#include <windows.h>
#include <processsnapshot.h>
int main()
{
auto processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 40092);
if (processHandle == nullptr)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishAot>true</PublishAot>
<IlcDisableReflection>true</IlcDisableReflection>
</PropertyGroup>
public static Task WhenAllOrFaulted(params Task[] tasks)
{
var faultedContinuations = new Task[tasks.Length];
var faultedTask = new TaskCompletionSource<Task>();
for (int i = 0; i < tasks.Length; i++)
{
faultedContinuations[i] = tasks[i].ContinueWith(t => faultedTask.SetResult(t), TaskContinuationOptions.OnlyOnFaulted);
}
public static Task WhenAllOrFaulted(params Task[] tasks)
{
var faultedContinuations = new Task[tasks.Length];
for (int i = 0; i < tasks.Length; i++)
{
faultedContinuations[i] = tasks[i].ContinueWith(_ => {}, TaskContinuationOptions.OnlyOnFaulted);
}
var faultedTask = Task.WhenAny(faultedContinuations);
[MethodImpl(MethodImplOptions.AggressiveOptimization)]
static void SyncMethod()
{
// Run a garbage collection in 1 second
Task.Delay(1000).ContinueWith(_ => { GC.Collect(); });
var taskCompletionSource = new TaskCompletionSource();
Action myDelegate = () => taskCompletionSource.SetResult();
[MethodImpl(MethodImplOptions.AggressiveOptimization)]
static async Task AsyncMethod()
{
// Run a garbage collection in 1 second
Task.Delay(1000).ContinueWith(_ => { GC.Collect(); });
var taskCompletionSource = new TaskCompletionSource();
Action myDelegate = () => taskCompletionSource.SetResult();
[MethodImpl(MethodImplOptions.AggressiveOptimization)]
static void Test()
{
var obj = new object();
// Run a garbage collection in 1 second
Task.Delay(1000).ContinueWith(_ => { GC.Collect(); });
// As soon as MyNativeMethod is called, there are no more references to obj
MyNativeMethod(new WeakReference(obj));
void Test()
{
var obj = new Object();
DoStuffWithObj(obj);
// At this point, the GC knows the object isn't used anymore and may collect obj
DoStuff();
}
var taskCompletionSource = new TaskCompletionSource();
MyDelegateType myDelegate = () => taskCompletionSource.SetResult();
NativeMethods.MyNativeMethod(myDelegate);
await taskCompletionSource.Task;
GC.KeepAlive(myDelegate);