Tungsten.NuGet 1.0.0


Homepage: https://github.com/mode51/Tungsten

Platform: NuGet

Language: C#

License: MIT

Keywords: Tungsten.NuGet, Tungsten

View on registry: https://www.nuget.org/packages/Tungsten.NuGet/1.0.0

Direct download link: https://www.nuget.org/api/v2/package/Tungsten.NuGet/1.0.0

Install: Install-Package Tungsten.NuGet -Version 1.0.0


Platforms: WinForms, WPF, Windows Universal, Windows Portable (PCL)

A C# library to make Windows Forms, WPF, Windows Universal and Windows Portable application development easier. See the Wiki page for details and use.

Tungsten is built with .Net Framework 4.5 Tungsten.Universal is built on Windows 10 (10.0; Build 10240)


  • Lockable<TValue> - A generic class to wrap a value in a thread-safe manner
  • Property<TValue> - A generic class providing a number of enhancements to a Lockable<TValue> value
    • Implements INotifyPropertyChanged
    • Adds IsDirty/MarkAsClean functionality
    • Supports a callback handler in the constructor so you don't have to use events
  • Property<TOwner, TValue> - Like Property<TValue> except that you can specify an Owner
    • Events and callback have type-strict sender (which is the Owner you specify)
  • PropertyHost - a base class which automates the IsDirty, MarkAsClean and InitializeProperties so you don't have to.
  • InvokeExtensions - A static class exposing InvokeEx extension methods (to ease InvokeRequired handling)
  • CallResult - A non-generic class which can be used to return true/false and an exception from a function
  • CallResult<TResult> - Like CallResult except that you can also specify a result
  • Thread - automates creating a thread with an Action
  • Thread<T> - like Thread, except Action is now Action<T>
  • Gate - similar to Thread, a Gate can be started some time after creation
  • Gate<T> - like Gate, exception Action is now Action<T>
  • ActionQueue<T> - Merges a Thread with a ConcurrentQueue. Executes the provided Action<T> or Func<T, bool> whenever an item is added to the ConcurrentQueue

Sample 1

If you can inherit from PropertyHost

public class MyClass : PropertyHost
    public Property<MyClass, string> Last {get; } = new Property<MyClass, string>();
    public Property<MyClass, string> First {get; } = new Property<MyClass, string>();

Sample 2

public class MyClass : MyBaseClass
    public Property<MyClass, string> Last {get; } = new Property<MyClass, string>();
    public Property<MyClass, string> First {get; } = new Property<MyClass, string>();

    private CallResult<int> CalculateAge()
        var result = new CallResult<int>(); //defaults: Success=False, Result=0, Exception=null
            result.Result = 22; //no real calculations in this sample
            result.Success = true;
        catch (Exception e)
          result.Exception = e;
    public MyClass()


  • 1.0.0 - January 11, 2017 20:07

Project Statistics

SourceRank 0
Dependencies 0
Dependent projects 0
Dependent repositories 0
Total releases 1
Latest release
First release
Stars 0
Forks 0
Watchers 1
Contributors 1
Repo Size: 93.8 KB

Top Contributors See all


Something wrong with this page? Make a suggestion

Export .ABOUT file for this library

Last synced: 2017-01-13 09:34:37 UTC