On Wednesday, 7 October 2015 at 09:09:36 UTC, Kagamin wrote:
On Sunday, 4 October 2015 at 04:24:55 UTC, bitwise wrote:
I use C#(garbage collected) for making apps/games, and while,
_in_theory_, the GC is supposed to protect you from leaks,
memory is not the only thing that can leak. Threads need to be
stopped, graphics resources need to be released, etc.
XNA doesn't manage graphics resources?
On Monday, 5 October 2015 at 17:40:24 UTC, bitwise wrote:
I'm not sure what's going to be done with shared, but I do
think it's annoying that you can't do this:
shared Array!int numbers;
someThread... {
numbers.clear(); // 'clear' is not shared
}
So this means that on top of the already ridiculous number of
attributes D has, now you have to mark everything as shared
too =/
That's illegal in other languages too except that they allow
you to do it. If you want concurrent collections, you must code
them separately:
https://msdn.microsoft.com/en-us/library/system.collections.concurrent%28v=vs.110%29.aspx
I'm not sure what you mean by illegal. AFAIK 'shared' is unique
to D. As far as simply locking and then accessing a global
variable(class static member) in C#, there is no problem doing
that from multiple threads.
If you have System.Collections.Generic.List(T) static class
member, there is nothing wrong with using it from multiple
threads like this:
class Foo {
static List<int> numbers = new List<int>();
void bar() {
new Thread(()=>{
lock(numbers) {
numbers.Add(1);
}).Start();
}
}
Bit