Oh, I just looked up at the screenshot & realized that goroutines is actually a big problem. It looks like you currently convert all code involving channels to sync (blocking) code, though in reality such code has to be converted to async methods in .NET, and since in Go every function is both sync & async (i.e. any function may await on a channel), you'll have to generate an async method in C# for every Go function.

In fact, the problem is not unique to C# though - i.e. only Go nowadays support this "both sync & async" execution model for every function you call. I wrote I find it super convenient, but this is something that's really hard to convert.


Creator of https://github.com/servicetitan/Stl.Fusion , ex-CTO @ ServiceTitan.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store