My Classic Start Menu contains submenus showing directory contents. This is a very helpful feature, and I use it constantly. However, one of my submenus is for a network share. This works fine at home, but when I take my laptop on the road, this causes Classic Start Menu to hang for roughly thirty seconds every time I click on the Start button.
There are multiple sub-issues and design questions here.
One, how can Classic Start Menu know in advance that a menu item may take a long time to initialize? For now let's assume network shares are the only problem. Is there a way to detect whether a drive letter is not mapped to a local device? Maybe just require that network share menus be mapped via UNC paths, which are easy to identify as remote. Or maybe add a checkbox to the menu configuration so the user can declare an item as a potential hangup.
Two, what part of initialization is slow? Is it autodetecting the icon? Is it determining whether or not to draw a triangular submenu indicator? Is it actually trying to preload the submenu contents?
Three, how can the slow task be made nonblocking? This depends on the available APIs, of course. Given the typical mindset of Windows APIs, it's quite likely that a separate thread is needed.
Four, what should be done until the potentially slow initialization is complete? A "loading, please wait" icon could be displayed, I guess, with no submenu indicator until ready. After a timeout, the icon could change to some kind of failure indicator.
An alternate approach could be to hide or gray out the menu item if Classic Start Menu somehow knows ahead of time that it will take a long time to initialize. This is problematic too, though... merely detecting connectivity is another common source of blocking!