Search Results

Search found 39456 results on 1579 pages for 'why do you'.

Page 562/1579 | < Previous Page | 558 559 560 561 562 563 564 565 566 567 568 569  | Next Page >

  • Using WeakReference to resolve issue with .NET unregistered event handlers causing memory leaks.

    - by Eric
    The problem: Registered event handlers create a reference from the event to the event handler's instance. If that instance fails to unregister the event handler (via Dispose, presumably), then the instance memory will not be freed by the garbage collector. Example: class Foo { public event Action AnEvent; public void DoEvent() { if (AnEvent != null) AnEvent(); } } class Bar { public Bar(Foo l) { l.AnEvent += l_AnEvent; } void l_AnEvent() { } } If I instantiate a Foo, and pass this to a new Bar constructor, then let go of the Bar object, it will not be freed by the garbage collector because of the AnEvent registration. I consider this a memory leak, and seems just like my old C++ days. I can, of course, make Bar IDisposable, unregister the event in the Dispose() method, and make sure to call Dispose() on instances of it, but why should I have to do this? I first question why events are implemented with strong references? Why not use weak references? An event is used to abstractly notify an object of changes in another object. It seems to me that if the event handler's instance is no longer in use (i.e., there are no non-event references to the object), then any events that it is registered with should automatically be unregistered. What am I missing? I have looked at WeakEventManager. Wow, what a pain. Not only is it very difficult to use, but its documentation is inadequate (see http://msdn.microsoft.com/en-us/library/system.windows.weakeventmanager.aspx -- noticing the "Notes to Inheritors" section that has 6 vaguely described bullets). I have seen other discussions in various places, but nothing I felt I could use. I propose a simpler solution based on WeakReference, as described here. My question is: Does this not meet the requirements with significantly less complexity? To use the solution, the above code is modified as follows: class Foo { public WeakReferenceEvent AnEvent = new WeakReferenceEvent(); internal void DoEvent() { AnEvent.Invoke(); } } class Bar { public Bar(Foo l) { l.AnEvent += l_AnEvent; } void l_AnEvent() { } } Notice two things: 1. The Foo class is modified in two ways: The event is replaced with an instance of WeakReferenceEvent, shown below; and the invocation of the event is changed. 2. The Bar class is UNCHANGED. No need to subclass WeakEventManager, implement IWeakEventListener, etc. OK, so on to the implementation of WeakReferenceEvent. This is shown here. Note that it uses the generic WeakReference that I borrowed from here: http://damieng.com/blog/2006/08/01/implementingweakreferencet I had to add Equals() and GetHashCode() to his class, which I include below for reference. class WeakReferenceEvent { public static WeakReferenceEvent operator +(WeakReferenceEvent wre, Action handler) { wre._delegates.Add(new WeakReference<Action>(handler)); return wre; } public static WeakReferenceEvent operator -(WeakReferenceEvent wre, Action handler) { foreach (var del in wre._delegates) if (del.Target == handler) { wre._delegates.Remove(del); return wre; } return wre; } HashSet<WeakReference<Action>> _delegates = new HashSet<WeakReference<Action>>(); internal void Invoke() { HashSet<WeakReference<Action>> toRemove = null; foreach (var del in _delegates) { if (del.IsAlive) del.Target(); else { if (toRemove == null) toRemove = new HashSet<WeakReference<Action>>(); toRemove.Add(del); } } if (toRemove != null) foreach (var del in toRemove) _delegates.Remove(del); } } public class WeakReference<T> : IDisposable { private GCHandle handle; private bool trackResurrection; public WeakReference(T target) : this(target, false) { } public WeakReference(T target, bool trackResurrection) { this.trackResurrection = trackResurrection; this.Target = target; } ~WeakReference() { Dispose(); } public void Dispose() { handle.Free(); GC.SuppressFinalize(this); } public virtual bool IsAlive { get { return (handle.Target != null); } } public virtual bool TrackResurrection { get { return this.trackResurrection; } } public virtual T Target { get { object o = handle.Target; if ((o == null) || (!(o is T))) return default(T); else return (T)o; } set { handle = GCHandle.Alloc(value, this.trackResurrection ? GCHandleType.WeakTrackResurrection : GCHandleType.Weak); } } public override bool Equals(object obj) { var other = obj as WeakReference<T>; return other != null && Target.Equals(other.Target); } public override int GetHashCode() { return Target.GetHashCode(); } } It's functionality is trivial. I override operator + and - to get the += and -= syntactic sugar matching events. These create WeakReferences to the Action delegate. This allows the garbage collector to free the event target object (Bar in this example) when nobody else is holding on to it. In the Invoke() method, simply run through the weak references and call their Target Action. If any dead (i.e., garbage collected) references are found, remove them from the list. Of course, this only works with delegates of type Action. I tried making this generic, but ran into the missing where T : delegate in C#! As an alternative, simply modify class WeakReferenceEvent to be a WeakReferenceEvent, and replace the Action with Action. Fix the compiler errors and you have a class that can be used like so: class Foo { public WeakReferenceEvent<int> AnEvent = new WeakReferenceEvent<int>(); internal void DoEvent() { AnEvent.Invoke(5); } } Hopefully this will help someone else when they run into the mystery .NET event memory leak!

    Read the article

  • not a valid iso file error

    - by user23950
    I'm trying this windows 7 usb/dvd download tool that I discovered from ars technica: http://arstechnica.com/business/news/2009/12/-the-usb-flash-drive.ars But I don't know why my windows 7 iso file does not work and its saying that its not a valid iso file. What do I do, do you know of other tools that can burn / extract iso file contents to a flash drive? Except the tool that is always showing up when you search in google, the command prompt one: http://arstechnica.com/business/news/2009/12/-the-usb-flash-drive.ars/2 A free tool for windows xp or 7

    Read the article

  • rfkill unblock all does not activate a certain wireless card

    - by Davidos
    With an intel 1000 wireless card; rfkill list 0: acer-wireless: Wireless LAN Soft blocked: yes Hard blocked: no 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no 2: tpacpi_bluetooth_sw: Bluetooth Soft blocked: yes Hard blocked: no rfkill unblock all 0: acer-wireless: Wireless LAN Soft blocked: yes Hard blocked: no 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no 2: tpacpi_bluetooth_sw: Bluetooth Soft blocked: no Hard blocked: no 3: hci0: Bluetooth Soft blocked: no Hard blocked: no Why does my wireless card not turn on?

    Read the article

  • Active Directory: delete vs. disable departed employees

    - by Matt Rogish
    When an employee leaves your organization, do you delete or disable their Active Directory account? Our SOP is to disable, export/purge the Exchange mailbox, and then after "some time" has elapsed (usually quarterly), delete the account. Is there any need for that delay? After exporting and purging their mailbox, why shouldn't I delete the account right then and there?

    Read the article

  • Ubuntu cannot play all the videos on yahoo

    - by Draco Ater
    Hello, I have latest Ubuntu installed, with firefox 3.6.3. I have flashplugin-installer and ubuntu-restricted-extras installed. No other package concerning flash (gnash, swf) is installed. I can play videos on youtube or some other sites, some even some videos on yahoo, but I cannot play this video (and some others) - the blue circle in the center (like loading...) keeps flashing forever. Why can't I play it, and how to make it play?

    Read the article

  • Apache Forbidden: httpd.conf or File Permissions

    - by Alan Storm
    When setting up an Apache virtual host, I'll occasionally get the following error when attempting to access the site. Forbidden You don't have permission to access / on this server. Is there any method to (or tool that will) tell me why Apache is denying access? (local rule in httpd.conf, file permissions, etc. I'm not looking for help with a specific configuration, instead I'm looking for a way to have the computer tell me what's wrong with my system and/or configuration.

    Read the article

  • Ubuntu cannot play all the videos on yahoo

    - by Draco Ater
    Hello, I have latest Ubuntu installed, with firefox 3.6.3. I have flashplugin-installer and ubuntu-restricted-extras installed. No other package concerning flash (gnash, swf) is installed. I can play videos on youtube or some other sites, some even some videos on yahoo, but I cannot play this video (and some others) - the blue circle in the center (like loading...) keeps flashing forever. Why can't I play it, and how to make it play?

    Read the article

  • Mac OS on a Windows PC

    I've done a little bit of reading on the topic, but nothing too clear has turned up. Why is it so difficult to run Mac OS on a virtual machine on a PC? Some sources say it's because of hardware architecture. Is there a clear, definitive reason?

    Read the article

  • Just to not to be ingnorant.

    - by atch
    Could anyone explain to me why is it that producers of processors claim that their processor can perform so many thousands (or millions) operations per second and yet typical program (Word, VS etc.) on my machine with 4GB, 3500hz starts with no less than 10sek. Have to mention that I've just formatted disk and tick any necessarry boxes to optimize my machine. So if for example outlook starts in 10 sek I wonder how many millions of operations have to be performed to run such program? Thanks

    Read the article

  • Uninstalling a program doesn't remove shortcuts from Start menu

    - by eternalDreamer
    This problem started very recently after a system restore. Each time I uninstall a program, it uninstalls correctly but the shortcuts remain in the Start menu. I can easily delete them by right-clicking on them, but it is an irritant and I was wondering why this is hapenning. I tried changing the permissions on C:\ProgramData\Microsoft\Windows\Start Menu\Programs but it did not help. What else can I try? I am using Windows 7 Home Premium.

    Read the article

  • List total memusage by 32bit programs and 64bit programs

    - by egon
    How to get the total amount of memory used by 32bit applications and 64bit applications from the command line in Windows. I tried using tasklist /FI "MODULES eq wow64.dll" /FO CSV and then parsing the output and summing. But tasklist just freezes with any command that has something to do with modules (tasklist /m and tasklist /fi "modules eq wow64.dll" freeze). Are there any alternatives? Or some idea why tasklist freezes.

    Read the article

  • JBOSS App Server vs. Glassfish

    - by codingbear
    I'm quite newbie on Glassfish. What are some differences between JBoss and Glassfish? Why would you chooose one over the other. I'm trying to read up on Glassfish, but it is really hard to pinpoint things that I may need before I start installing and trying to deploy some applications on it. UPDATE It would be good if any additional information on JBoss and Glassfish comparison is provided (e.g. technologies they support, performance, etc.)

    Read the article

  • STARTTLS issues with sendmail

    - by Jim
    I just switch hosts and now have to configure sendmail with certificates in order to send mail. Is there anyone here that can point me to some solid documentation that is known to work? I'm on CentOS, using sendmail 8.13. I am currently trying to figure out why I am getting "Relaying denied. Proper authentication required". I'd be happy to post my mc file if someone thinks thay can help..

    Read the article

  • Randomly poor 2D performance in Linux Mint 11 when using nvidia driver

    - by SDD
    I am using: - Linux Mint 11 - Geforce 560ti - nVidia driver (installed via helper programm, not from nvidia page) The third party nvidia drivers radomly cause very poor 2D performance. Radomly because the performance can be very great, but after the next reboot or login become very poor. After another reboot or login, this might change again to better or worse. I have no idea why and how and I need your help. Thank you.

    Read the article

  • Tons Of rpc.idmapd errors in syslog

    - by Slamguy
    I am growing weary of some error messages in my syslog - its showing: Jul 3 15:16:38 web rpc.idmapd[14535]: nss_getpwnam: name 'nobody' does not map into domain 'mydomain.com' I have check, my hostname is correct as mydomain.com and I even added a valid entry in /etc/hostname . I have edited my /etc/idmapd.conf to reflect this domain name, this error message log every 10minutes and its becoming frustrating, I do not know why or whats causing it, the nfs server is working ok, with correct entries and now message in the log. I am using centos6 -- Ofcoure, i have substituted mydomain.com with my real domain

    Read the article

  • MS-DOS find command

    - by mihai
    Hi, I have the following command: find Acc*\bin\Debug\*.pdb > temp.txt Looking in temp.txt, I have: Accounting/bin/Debug/Accounting.pdb Accounting/bin/Debug/BackendProcess.pdb NOTE the forward slashes. Why does it output file names like this? And how do I get it to output backslashes, so I can use del on those files? Thanks

    Read the article

  • Helicon ISAPI_REWRITE for masking folder

    - by Brian
    Hello, I would like to use the ISAPI_REWRITE module to rewrite a url: www.site.com/app/ to www.site.com So that the user doesn't see the folder where the application is... the reason why isn't important, but essentially I need to mask this folder due to an IIS structure change. Any help would be appreciated. I need to remap any requested file in the app directory and any related subdirectory to the main URL. Thanks.

    Read the article

  • PHP scripts owned by www-data

    - by matnagel
    I am always running php scripts on a dedicated server as user "webroot". It would be easier for coding and administration if the scripts were owned by www-data, the apache2 user. Also feels more simple and clean. There is no ftp on this box and there are no other users or sites. Why not have the php scripts owned by www-data? If there is anything against it, what is the worst that can happen?

    Read the article

  • Outlook 2007 - slow loading messages

    - by studiohack
    Outlook 2007 is slow to load messages...Why is this, and what can I do to speed it up? Currently have about 850 messages in the Inbox folder, and the preview pane turned off, thus I view messages by double-clicking. This is where it gets slow, when I double click, it brings up a new window with everything but the actual message loaded, which then takes several more seconds to appear. Solutions? Thanks! (running Windows 7)

    Read the article

  • OS X rpc.statd warning failed to contact host

    - by Obsidian
    When I log into my mac on 10.6.3 I get the following error in my console 29/05/2010 19:11:43 prometheus rpc.statd[109] Warning Failed to contact host aphrodite.lan: RPC: Unknown host Now I know that rpc is trying to contact a non existent host but what I can't figure out is why and how to stop it. Any ideas?

    Read the article

  • MSTSC RDP over the public internet

    - by stuart Brand
    My first question so please be gentle :) I have a client who is insisting that they have to let their third party vendor support access to there server directly from the internet via RDP. Our policy does not allow direct access to the infrastructure from outside of the data centre for administration except from an approved VPN connection and then virtual desktop there on to the servers. I am now in the situation where I must give good reasons why it is dangerous to use RDP over the public internet. any help would be appreciated Thanks in advance Stuart

    Read the article

  • Delay after commit before Redmine comments ticket

    - by Paul
    I was used to having a post-commit hook trigger processing of the commit message by Trac (SVN repository). The comment (or action) was added immediately. Now I switched to Mercurial as a VCS and Redmine as a ticketing system. Redmine does recognize information in changeset/commit messages like "refs #185" - but it takes several minutes to appear in the ticket. Any ideas why this is? Is the routine to grab the changesets called periodically somehow?

    Read the article

< Previous Page | 558 559 560 561 562 563 564 565 566 567 568 569  | Next Page >