I believe it just marks it as ready for garbage collection. Same for when you just set something to null (assuming no other references to that memory are present).
Here's a reference to Microsoft's doc:
http://msdn.microsoft.com/en-us/library/0xy59wtx.aspx
Typically, it's actually best to not collect garbage yourself... just let the framework do it's thing. It usually tries to do this at an opportune time so as not to interrupt other processes in cases where there is a lot of memory to free up.
You can interact directly with the GC class, and manually specify garbage collection by calling GC.Collect() but the downside here is that I think it performs garbage collection for your entire system (ie, other processes running .NET) so you run the risk of delaying other programs. I'm not 100% sure about this so you may want to verify. It will definitely slow down your own program though, if there is a lot of memory to free.
Unless you're working in a limited memory environment or allocating an extremely large amount of memory, I wouldn't worry about it. That said, if you do need to tinker, look into the GC class. I thought there were methods in there to configure it, but maybe not? Check it out anyway :)
If you did need to collect every 5 minutes manually, you could always use a Timer object.